OleAut.h
上传用户:gddssl
上传日期:2007-01-06
资源大小:1003k
文件大小:2k
源码类别:

编辑器/阅读器

开发平台:

DOS

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