mirror of
https://github.com/vim/vim.git
synced 2025-09-28 04:24:06 -04:00
74 lines
1.9 KiB
C++
74 lines
1.9 KiB
C++
#ifndef __OLEAUT_H__
|
|
#define __OLEAUT_H__
|
|
|
|
class COleAutomationControl : public CObject
|
|
{
|
|
public:
|
|
COleAutomationControl ();
|
|
~COleAutomationControl ();
|
|
bool CreateObject (char* ProgId);
|
|
DISPID GetDispatchId (char* Name);
|
|
bool GetProperty (char* Name);
|
|
bool GetProperty (DISPID DispatchId);
|
|
bool PutProperty (char* Name, LPCTSTR Format, ...);
|
|
bool PutProperty (DISPID DispatchId, LPCTSTR Format, ...);
|
|
bool Method (char* Name, LPCTSTR Format = NULL, ...);
|
|
bool Method (DISPID DispatchId, LPCTSTR Format = NULL, ...);
|
|
void DeleteObject ();
|
|
void ErrDiag ();
|
|
bool IsCreated ()
|
|
{
|
|
return m_pDispatch ? true : false;
|
|
}
|
|
bool IsAlive ();
|
|
HRESULT GetResult ()
|
|
{
|
|
return m_hResult;
|
|
}
|
|
UINT GetErrArgNr ()
|
|
{
|
|
return m_nErrArg;
|
|
}
|
|
EXCEPINFO* GetExceptionInfo ()
|
|
{
|
|
return &m_ExceptionInfo;
|
|
}
|
|
LPVARIANT GetResultVariant ()
|
|
{
|
|
return &m_VariantResult;
|
|
}
|
|
|
|
protected:
|
|
bool Invoke (WORD Flags, char* Name, LPCTSTR Format, va_list ArgList);
|
|
bool Invoke (WORD Flags, DISPID DispatchId, LPCTSTR Format, va_list ArgList);
|
|
|
|
protected:
|
|
IDispatch* m_pDispatch;
|
|
HRESULT m_hResult;
|
|
UINT m_nErrArg;
|
|
EXCEPINFO m_ExceptionInfo;
|
|
VARIANTARG m_VariantResult;
|
|
};
|
|
|
|
#ifdef UNICODE
|
|
#define FROM_OLE_STRING(str) str
|
|
#define FROM_OLE_STRING_BUF(str,buf) str
|
|
#define TO_OLE_STR(str) str
|
|
#define TO_OLE_STR_BUF(str,buf) str
|
|
#define MAX_OLE_STR 1
|
|
#else
|
|
#define FROM_OLE_STR(str) ConvertToAnsi(str)
|
|
#define FROM_OLE_STR_BUF(str,buf) ConvertToAnsiBuf(str,buf)
|
|
char* ConvertToAnsi (OLECHAR* sUnicode);
|
|
char* ConvertToAnsiBuf (OLECHAR* sUnicode, char* Buf);
|
|
#define TO_OLE_STR(str) ConvertToUnicode(str)
|
|
#define TO_OLE_STR_BUF(str,buf) ConvertToUnicodeBuf(str,buf)
|
|
OLECHAR* ConvertToUnicode (char* sAscii);
|
|
OLECHAR* ConvertToUnicodeBuf (char* sAscii, OLECHAR* Buf);
|
|
// Maximum length of string that can be converted between Ansi & Unicode
|
|
#define MAX_OLE_STR 500
|
|
#endif
|
|
|
|
|
|
#endif // __OLEAUT_H__
|