view src/VisVim/OleAut.h @ 17389:635d7f5010b8 v8.1.1693

patch 8.1.1693: syntax coloring and highlighting is in one big file commit https://github.com/vim/vim/commit/f9cc9f209ede9f15959e4c2351e970477c139614 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 14 21:29:22 2019 +0200 patch 8.1.1693: syntax coloring and highlighting is in one big file Problem: Syntax coloring and highlighting is in one big file. Solution: Move the highlighting to a separate file. (Yegappan Lakshmanan, closes #4674)
author Bram Moolenaar <Bram@vim.org>
date Sun, 14 Jul 2019 21:30:04 +0200
parents 3fc0f57ecb91
children
line wrap: on
line source

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