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
6.5 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. #include <pshpack8.h>
  30. typedef struct
  31. {
  32. DWORD dwSize; // Should be set to sizeof(DIGCPAGEINFO)
  33. LPWSTR lpwszPageTitle; // Text to be displayed on tab
  34. DLGPROC fpPageProc; // Dialog Procedure for page
  35. BOOL fProcFlag; // TRUE if you are using fpPrePostProc member
  36. DLGPROC fpPrePostProc; // Pointer to Callback function that is Only called on Init!
  37. BOOL fIconFlag; // TRUE if you are using lpwszPageIcon member
  38. LPWSTR lpwszPageIcon; // Resource ID or name of icon
  39. LPWSTR lpwszTemplate; // Dialog template
  40. LPARAM lParam; // Application defined data
  41. HINSTANCE hInstance; // Handle of Instance to load Icon/Cursor
  42. } DIGCPAGEINFO, *LPDIGCPAGEINFO;
  43. typedef struct
  44. {
  45. DWORD dwSize; // Should but set to sizeof(DIGCSHEETINFO)
  46. USHORT nNumPages; // Number of pages on this sheet
  47. LPWSTR lpwszSheetCaption;// Text to be used in Sheet Window Title
  48. BOOL fSheetIconFlag; // TRUE if you are using the lpwszSheetIcon member
  49. LPWSTR lpwszSheetIcon; // Resource ID or name of icon
  50. } DIGCSHEETINFO, *LPDIGCSHEETINFO;
  51. #include <poppack.h>
  52. //�����������������������������������������������������������������������ͻ
  53. //� �
  54. //� Interface as Exposed by the InProcServer Property Sheet �
  55. //� �
  56. //�����������������������������������������������������������������������ͼ
  57. DECLARE_INTERFACE_( IDIGameCntrlPropSheet, IUnknown)
  58. {
  59. // IUnknown Members
  60. STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID * ppvObj) PURE;
  61. STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  62. STDMETHOD_(ULONG,Release) (THIS) PURE;
  63. // IServerProperty Members
  64. STDMETHOD(GetSheetInfo) (THIS_ LPDIGCSHEETINFO *) PURE;
  65. STDMETHOD(GetPageInfo) (THIS_ LPDIGCPAGEINFO *) PURE;
  66. STDMETHOD(SetID) (THIS_ USHORT nID) PURE;
  67. STDMETHOD_(USHORT,GetID)(THIS) PURE;
  68. };
  69. typedef IDIGameCntrlPropSheet *LPIDIGAMECNTRLPROPSHEET;
  70. //�����������������������������������������������������������������������ͻ
  71. //� �
  72. //� CLASS DEFINITION for CServerClassFactory �
  73. //� �
  74. //�����������������������������������������������������������������������ͼ
  75. class CServerClassFactory : public IClassFactory
  76. {
  77. protected:
  78. ULONG m_ServerCFactory_refcount;
  79. public:
  80. // constructor
  81. CServerClassFactory(void);
  82. // destructor
  83. ~CServerClassFactory(void);
  84. // IUnknown methods
  85. STDMETHODIMP QueryInterface(REFIID, PPVOID);
  86. STDMETHODIMP_(ULONG) AddRef(void);
  87. STDMETHODIMP_(ULONG) Release(void);
  88. // IClassFactory methods
  89. STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, PPVOID);
  90. STDMETHODIMP LockServer(BOOL);
  91. };
  92. //�����������������������������������������������������������������������ͻ
  93. //� �
  94. //� CLASS DEFINITION for CDIGameCntrlPropSheet �
  95. //� �
  96. //�����������������������������������������������������������������������ͼ
  97. class CDIGameCntrlPropSheet : public IDIGameCntrlPropSheet
  98. {
  99. friend CServerClassFactory;
  100. private:
  101. DWORD m_cProperty_refcount;
  102. public:
  103. CDIGameCntrlPropSheet(void);
  104. ~CDIGameCntrlPropSheet(void);
  105. // IUnknown methods
  106. STDMETHODIMP QueryInterface(REFIID, PPVOID);
  107. STDMETHODIMP_(ULONG) AddRef(void);
  108. STDMETHODIMP_(ULONG) Release(void);
  109. STDMETHODIMP GetSheetInfo(LPDIGCSHEETINFO *lpSheetInfo);
  110. STDMETHODIMP GetPageInfo (LPDIGCPAGEINFO *lpPageInfo );
  111. STDMETHODIMP SetID(USHORT nID);
  112. STDMETHODIMP_(USHORT) GetID();
  113. };
  114. typedef CDIGameCntrlPropSheet *LPCDIGAMECNTRLPROPSHEET;
  115. //�����������������������������������������������������������������������ͻ
  116. //� �
  117. //� ERRORS �
  118. //� �
  119. //�����������������������������������������������������������������������ͼ
  120. #define DIGCERR_ERRORSTART 0x80097000
  121. #define DIGCERR_NUMPAGESZERO 0x80097001
  122. #define DIGCERR_NODLGPROC 0x80097002
  123. #define DIGCERR_NOPREPOSTPROC 0x80097003
  124. #define DIGCERR_NOTITLE 0x80097004
  125. #define DIGCERR_NOCAPTION 0x80097005
  126. #define DIGCERR_NOICON 0x80097006
  127. #define DIGCERR_STARTPAGETOOLARGE 0x80097007
  128. #define DIGCERR_NUMPAGESTOOLARGE 0x80097008
  129. #define DIGCERR_INVALIDDWSIZE 0x80097009
  130. #define DIGCERR_ERROREND 0x80097100
  131. #endif // _DX_CPL_