diff src/VisVim/OleAut.h @ 7:3fc0f57ecb91 v7.0001

updated for version 7.0001
author vimboss
date Sun, 13 Jun 2004 20:20:40 +0000
parents
children
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/src/VisVim/OleAut.h
@@ -0,0 +1,73 @@
+#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__