Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

155 lines
5.8 KiB

  1. //�����������������������������������������������������������������������ͻ
  2. //� �
  3. //� This is a part of the Microsoft Direct Input SDK. �
  4. //� Copyright (C) 1992-1997 Microsoft Corporation �
  5. //� All rights reserved. �
  6. //� �
  7. //� This source code is only intended as a supplement to the �
  8. //� Microsoft Direct Input SDK References and related �
  9. //� electronic documentation provided with the SDK. �
  10. //� See these sources for detailed information regarding the �
  11. //� Microsoft Direct Input API. �
  12. //� �
  13. //�����������������������������������������������������������������������ͼ
  14. #ifndef _DX_CPL_
  15. #define _DX_CPL_
  16. // maximum pages allowed on a server
  17. #define MAX_PAGES 26
  18. // Interface ID
  19. // {7854FB22-8EE3-11d0-A1AC-0000F8026977}
  20. DEFINE_GUID(IID_IDIGameCntrlPropSheet,
  21. 0x7854fb22, 0x8ee3, 0x11d0, 0xa1, 0xac, 0x0, 0x0, 0xf8, 0x2, 0x69, 0x77);
  22. //�����������������������������������������������������������������������ͻ
  23. //� �
  24. //� STRUCTURES �
  25. //� �
  26. //�����������������������������������������������������������������������ͼ
  27. // This pragma may not be supported by all compilers.
  28. // Please consult your compiler documentation.
  29. #pragma pack(8)
  30. typedef struct
  31. {
  32. DWORD dwSize;
  33. LPWSTR lpwszPageTitle;
  34. DLGPROC fpPageProc;
  35. BOOL fProcFlag;
  36. DLGPROC fpPrePostProc;
  37. BOOL fIconFlag;
  38. LPWSTR lpwszPageIcon;
  39. LPWSTR lpwszTemplate;
  40. LPARAM lParam;
  41. HINSTANCE hInstance;
  42. } DIGCPAGEINFO, *LPDIGCPAGEINFO;
  43. typedef struct
  44. {
  45. DWORD dwSize;
  46. USHORT nNumPages;
  47. LPWSTR lpwszSheetCaption;
  48. BOOL fSheetIconFlag;
  49. LPWSTR lpwszSheetIcon;
  50. } DIGCSHEETINFO, *LPDIGCSHEETINFO;
  51. //�����������������������������������������������������������������������ͻ
  52. //� �
  53. //� Interface as Exposed by the InProcServer Property Sheet �
  54. //� �
  55. //�����������������������������������������������������������������������ͼ
  56. DECLARE_INTERFACE_( IDIGameCntrlPropSheet, IUnknown)
  57. {
  58. // IUnknown Members
  59. STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID * ppvObj) PURE;
  60. STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  61. STDMETHOD_(ULONG,Release) (THIS) PURE;
  62. // IServerProperty Members
  63. STDMETHOD(GetSheetInfo) (THIS_ LPDIGCSHEETINFO *) PURE;
  64. STDMETHOD(GetPageInfo) (THIS_ LPDIGCPAGEINFO *) PURE;
  65. STDMETHOD(SetID) (THIS_ USHORT nID) PURE;
  66. };
  67. typedef IDIGameCntrlPropSheet *LPIDIGAMECNTRLPROPSHEET;
  68. //�����������������������������������������������������������������������ͻ
  69. //� �
  70. //� CLASS DEFINITION for CServerClassFactory �
  71. //� �
  72. //�����������������������������������������������������������������������ͼ
  73. class CServerClassFactory : public IClassFactory
  74. {
  75. protected:
  76. ULONG m_ServerCFactory_refcount;
  77. public:
  78. // constructor
  79. CServerClassFactory(void);
  80. // destructor
  81. ~CServerClassFactory(void);
  82. // IUnknown methods
  83. STDMETHODIMP QueryInterface(REFIID, PPVOID);
  84. STDMETHODIMP_(ULONG) AddRef(void);
  85. STDMETHODIMP_(ULONG) Release(void);
  86. // IClassFactory methods
  87. STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, PPVOID);
  88. STDMETHODIMP LockServer(BOOL);
  89. };
  90. //�����������������������������������������������������������������������ͻ
  91. //� �
  92. //� CLASS DEFINITION for CDIGameCntrlPropSheet �
  93. //� �
  94. //�����������������������������������������������������������������������ͼ
  95. class CDIGameCntrlPropSheet : public IDIGameCntrlPropSheet
  96. {
  97. friend CServerClassFactory;
  98. private:
  99. short m_cProperty_refcount;
  100. short m_nID;
  101. public:
  102. CDIGameCntrlPropSheet(void);
  103. ~CDIGameCntrlPropSheet(void);
  104. // IUnknown methods
  105. virtual STDMETHODIMP QueryInterface(REFIID, PPVOID);
  106. virtual STDMETHODIMP_(ULONG) AddRef(void);
  107. virtual STDMETHODIMP_(ULONG) Release(void);
  108. virtual STDMETHODIMP GetSheetInfo(LPDIGCSHEETINFO *ppSheetInfo);
  109. virtual STDMETHODIMP GetPageInfo (LPDIGCPAGEINFO *ppPageInfo );
  110. virtual STDMETHODIMP SetID(USHORT nID);
  111. virtual STDMETHODIMP_(USHORT) GetID(void) {return m_nID;}
  112. };
  113. typedef CDIGameCntrlPropSheet *LPCDIGAMECNTRLPROPSHEET;
  114. //�����������������������������������������������������������������������ͻ
  115. //� �
  116. //� ERRORS �
  117. //� �
  118. //�����������������������������������������������������������������������ͼ
  119. #define DIGCERR_ERRORSTART 0x80097000
  120. #define DIGCERR_NUMPAGESZERO 0x80097001
  121. #define DIGCERR_NODLGPROC 0x80097002
  122. #define DIGCERR_NOPREPOSTPROC 0x80097003
  123. #define DIGCERR_NOTITLE 0x80097004
  124. #define DIGCERR_NOCAPTION 0x80097005
  125. #define DIGCERR_NOICON 0x80097006
  126. #define DIGCERR_STARTPAGETOOLARGE 0x80097007
  127. #define DIGCERR_NUMPAGESTOOLARGE 0x80097008
  128. #define DIGCERR_INVALIDDWSIZE 0x80097009
  129. #define DIGCERR_ERROREND 0x80097100
  130. #endif // _DX_CPL_