7
|
1 #ifndef __OLEAUT_H__
|
|
2 #define __OLEAUT_H__
|
|
3
|
|
4 class 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__
|