1#ifndef __OLEAUT_H__ 2#define __OLEAUT_H__ 3 4class COleAutomationControl : public CObject 5{ 6 public: 7 COleAutomationControl (); 8 ~COleAutomationControl (); 9 bool CreateObject (char* ProgId); 10 DISPID GetDispatchId (char* Name); 11 bool GetProperty (char* Name); 12 bool GetProperty (DISPID DispatchId); 13 bool PutProperty (char* Name, LPCTSTR Format, ...); 14 bool PutProperty (DISPID DispatchId, LPCTSTR Format, ...); 15 bool Method (char* Name, LPCTSTR Format = NULL, ...); 16 bool Method (DISPID DispatchId, LPCTSTR Format = NULL, ...); 17 void DeleteObject (); 18 void ErrDiag (); 19 bool IsCreated () 20 { 21 return m_pDispatch ? true : false; 22 } 23 bool IsAlive (); 24 HRESULT GetResult () 25 { 26 return m_hResult; 27 } 28 UINT GetErrArgNr () 29 { 30 return m_nErrArg; 31 } 32 EXCEPINFO* GetExceptionInfo () 33 { 34 return &m_ExceptionInfo; 35 } 36 LPVARIANT GetResultVariant () 37 { 38 return &m_VariantResult; 39 } 40 41 protected: 42 bool Invoke (WORD Flags, char* Name, LPCTSTR Format, va_list ArgList); 43 bool Invoke (WORD Flags, DISPID DispatchId, LPCTSTR Format, va_list ArgList); 44 45 protected: 46 IDispatch* m_pDispatch; 47 HRESULT m_hResult; 48 UINT m_nErrArg; 49 EXCEPINFO m_ExceptionInfo; 50 VARIANTARG m_VariantResult; 51}; 52 53#ifdef UNICODE 54 #define FROM_OLE_STRING(str) str 55 #define FROM_OLE_STRING_BUF(str,buf) str 56 #define TO_OLE_STR(str) str 57 #define TO_OLE_STR_BUF(str,buf) str 58 #define MAX_OLE_STR 1 59#else 60 #define FROM_OLE_STR(str) ConvertToAnsi(str) 61 #define FROM_OLE_STR_BUF(str,buf) ConvertToAnsiBuf(str,buf) 62 char* ConvertToAnsi (OLECHAR* sUnicode); 63 char* ConvertToAnsiBuf (OLECHAR* sUnicode, char* Buf); 64 #define TO_OLE_STR(str) ConvertToUnicode(str) 65 #define TO_OLE_STR_BUF(str,buf) ConvertToUnicodeBuf(str,buf) 66 OLECHAR* ConvertToUnicode (char* sAscii); 67 OLECHAR* ConvertToUnicodeBuf (char* sAscii, OLECHAR* Buf); 68 // Maximum length of string that can be converted between Ansi & Unicode 69 #define MAX_OLE_STR 500 70#endif 71 72 73#endif // __OLEAUT_H__ 74