blob: 37de8078b1e6c1e1bf86156ee3d9ae8dd3b4c574 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001#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__