| #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__ |