Leaked source code of windows server 2003
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.

253 lines
10 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1998 - 1999
  6. //
  7. // File: d3drm3obj.h
  8. //
  9. //--------------------------------------------------------------------------
  10. // d3drmObj.h : Declaration of the C_dxj_Direct3dRMObject
  11. #include "resource.h" // main symbols
  12. #define typedef__dxj_Direct3dRM3 LPDIRECT3DRM3
  13. /////////////////////////////////////////////////////////////////////////////
  14. // Direct
  15. //REVIEW -- using pointers to ID's is necessary because some compilers don't like
  16. //references as template arguments.
  17. class C_dxj_Direct3dRM3Object :
  18. public I_dxj_Direct3dRM3,
  19. public CComObjectRoot
  20. // public CComCoClass<C_dxj_Direct3dRM3Object, &CLSID__dxj_Direct3dRM3>, public CComObjectRoot
  21. {
  22. public:
  23. void doCreateObj();
  24. void doDeleteObj();
  25. C_dxj_Direct3dRM3Object();
  26. virtual ~C_dxj_Direct3dRM3Object();
  27. BEGIN_COM_MAP(C_dxj_Direct3dRM3Object)
  28. COM_INTERFACE_ENTRY(I_dxj_Direct3dRM3)
  29. END_COM_MAP()
  30. DECLARE_AGGREGATABLE(C_dxj_Direct3dRM3Object)
  31. // I_dxj_Direct3dRM
  32. public:
  33. /* [hidden] */ HRESULT STDMETHODCALLTYPE InternalSetObject(
  34. /* [in] */ IUnknown __RPC_FAR *lpdd);
  35. /* [hidden] */ HRESULT STDMETHODCALLTYPE InternalGetObject(
  36. /* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *lpdd);
  37. HRESULT STDMETHODCALLTYPE createDeviceFromClipper(
  38. /* [in] */ I_dxj_DirectDrawClipper __RPC_FAR *lpDDClipper,
  39. /* [in] */ BSTR guid,
  40. /* [in] */ int width,
  41. /* [in] */ int height,
  42. /* [retval][out] */ I_dxj_Direct3dRMDevice3 __RPC_FAR *__RPC_FAR *retv);
  43. HRESULT STDMETHODCALLTYPE createFrame(
  44. /* [in] */ I_dxj_Direct3dRMFrame3 __RPC_FAR *parent,
  45. /* [retval][out] */ I_dxj_Direct3dRMFrame3 __RPC_FAR *__RPC_FAR *retv);
  46. HRESULT STDMETHODCALLTYPE createLightRGB(
  47. /* [in] */ d3drmLightType lt,
  48. /* [in] */ float vred,
  49. /* [in] */ float vgreen,
  50. /* [in] */ float vblue,
  51. /* [retval][out] */ I_dxj_Direct3dRMLight __RPC_FAR *__RPC_FAR *retv);
  52. HRESULT STDMETHODCALLTYPE createLight(
  53. /* [in] */ d3drmLightType lt,
  54. /* [in] */ long color,
  55. /* [retval][out] */ I_dxj_Direct3dRMLight __RPC_FAR *__RPC_FAR *retv);
  56. HRESULT STDMETHODCALLTYPE createMeshBuilder(
  57. /* [retval][out] */ I_dxj_Direct3dRMMeshBuilder3 __RPC_FAR *__RPC_FAR *retv);
  58. HRESULT STDMETHODCALLTYPE createMaterial(
  59. /* [in] */ float d,
  60. /* [retval][out] */ I_dxj_Direct3dRMMaterial2 __RPC_FAR *__RPC_FAR *val);
  61. HRESULT STDMETHODCALLTYPE loadTexture(
  62. /* [in] */ BSTR name,
  63. /* [retval][out] */ I_dxj_Direct3dRMTexture3 __RPC_FAR *__RPC_FAR *retval);
  64. HRESULT STDMETHODCALLTYPE createViewport(
  65. /* [in] */ I_dxj_Direct3dRMDevice3 __RPC_FAR *dev,
  66. /* [in] */ I_dxj_Direct3dRMFrame3 __RPC_FAR *fr,
  67. /* [in] */ long l,
  68. /* [in] */ long t,
  69. /* [in] */ long w,
  70. /* [in] */ long h,
  71. /* [retval][out] */ I_dxj_Direct3dRMViewport2 __RPC_FAR *__RPC_FAR *retval);
  72. HRESULT STDMETHODCALLTYPE setDefaultTextureColors(
  73. /* [in] */ long ds);
  74. HRESULT STDMETHODCALLTYPE setDefaultTextureShades(
  75. /* [in] */ long ds);
  76. HRESULT STDMETHODCALLTYPE createAnimationSet(
  77. /* [retval][out] */ I_dxj_Direct3dRMAnimationSet2 __RPC_FAR *__RPC_FAR *retval);
  78. HRESULT STDMETHODCALLTYPE createMesh(
  79. /* [retval][out] */ I_dxj_Direct3dRMMesh __RPC_FAR *__RPC_FAR *retv);
  80. HRESULT STDMETHODCALLTYPE createFace(
  81. /* [retval][out] */ I_dxj_Direct3dRMFace2 __RPC_FAR *__RPC_FAR *retv);
  82. HRESULT STDMETHODCALLTYPE createAnimation(
  83. /* [retval][out] */ I_dxj_Direct3dRMAnimation2 __RPC_FAR *__RPC_FAR *retv);
  84. HRESULT STDMETHODCALLTYPE tick(
  85. /* [in] */ float tic);
  86. // HRESULT STDMETHODCALLTYPE createDevice(
  87. // /* [in] */ long v1,
  88. // /* [in] */ long v2,
  89. // /* [retval][out] */ I_dxj_Direct3dRMDevice3 __RPC_FAR *__RPC_FAR *retv);
  90. HRESULT STDMETHODCALLTYPE createDeviceFromSurface(
  91. /* [in] */ BSTR g,
  92. /* [in] */ I_dxj_DirectDraw4 __RPC_FAR *dd,
  93. /* [in] */ I_dxj_DirectDrawSurface4 __RPC_FAR *dds,
  94. /* [in] */ long flags,
  95. /* [retval][out] */ I_dxj_Direct3dRMDevice3 __RPC_FAR *__RPC_FAR *retval);
  96. //HRESULT STDMETHODCALLTYPE createDeviceFromD3D(
  97. // /* [in] */ I_dxj_Direct3d3 __RPC_FAR *D3D,
  98. // /* [in] */ I_dxj_Direct3dDevice3 __RPC_FAR *dev,
  99. // /* [retval][out] */ I_dxj_Direct3dRMDevice3 __RPC_FAR *__RPC_FAR *val);
  100. HRESULT STDMETHODCALLTYPE createTextureFromSurface(
  101. /* [in] */ I_dxj_DirectDrawSurface4 __RPC_FAR *dds,
  102. /* [retval][out] */ I_dxj_Direct3dRMTexture3 __RPC_FAR *__RPC_FAR *retv);
  103. HRESULT STDMETHODCALLTYPE createWrap(
  104. /* [in] */ d3drmWrapType t,
  105. /* [in] */ I_dxj_Direct3dRMFrame3 __RPC_FAR *f,
  106. /* [in] */ float ox,
  107. /* [in] */ float oy,
  108. /* [in] */ float oz,
  109. /* [in] */ float dx,
  110. /* [in] */ float dy,
  111. /* [in] */ float dz,
  112. /* [in] */ float ux,
  113. /* [in] */ float uy,
  114. /* [in] */ float uz,
  115. /* [in] */ float ou,
  116. /* [in] */ float ov,
  117. /* [in] */ float su,
  118. /* [in] */ float sv,
  119. /* [retval][out] */ I_dxj_Direct3dRMWrap __RPC_FAR *__RPC_FAR *retv);
  120. HRESULT STDMETHODCALLTYPE getSearchPath(
  121. /* [retval][out] */ BSTR __RPC_FAR *name);
  122. HRESULT STDMETHODCALLTYPE getDevices(
  123. /* [retval][out] */ I_dxj_Direct3dRMDeviceArray __RPC_FAR *__RPC_FAR *retval);
  124. HRESULT STDMETHODCALLTYPE getNamedObject(
  125. /* [in] */ BSTR name,
  126. /* [retval][out] */ I_dxj_Direct3dRMObject __RPC_FAR *__RPC_FAR *retval);
  127. HRESULT STDMETHODCALLTYPE setSearchPath(
  128. /* [in] */ BSTR name);
  129. HRESULT STDMETHODCALLTYPE addSearchPath(
  130. /* [in] */ BSTR name);
  131. // HRESULT STDMETHODCALLTYPE createUserVisual(
  132. // /* [in] */ I_dxj_Direct3dRMUserVisualCallback __RPC_FAR *fn,
  133. // /* [in] */ IUnknown __RPC_FAR *arg,
  134. // /* [retval][out] */ I_dxj_Direct3dRMUserVisual __RPC_FAR *__RPC_FAR *f);
  135. HRESULT STDMETHODCALLTYPE enumerateObjects(
  136. /* [in] */ I_dxj_Direct3dRMEnumerateObjectsCallback __RPC_FAR *fn,
  137. /* [in] */ IUnknown __RPC_FAR *pargs);
  138. HRESULT STDMETHODCALLTYPE loadFromFile(
  139. /* [in] */ BSTR filename,
  140. /* [in] */ VARIANT id,
  141. /* [in] */ SAFEARRAY __RPC_FAR * __RPC_FAR *guidArray,
  142. /* [in] */ long cnt,
  143. /* [in] */ d3drmLoadFlags options,
  144. /* [in] */ I_dxj_Direct3dRMLoadCallback __RPC_FAR *fn1,
  145. /* [in] */ IUnknown __RPC_FAR *arg1,
  146. /* [in] */ I_dxj_Direct3dRMLoadTextureCallback3 __RPC_FAR *fn2,
  147. /* [in] */ IUnknown __RPC_FAR *arg2,
  148. /* [in] */ I_dxj_Direct3dRMFrame3 __RPC_FAR *f);
  149. HRESULT STDMETHODCALLTYPE createShadow(
  150. /* [in] */ I_dxj_Direct3dRMVisual __RPC_FAR *visual,
  151. /* [in] */ I_dxj_Direct3dRMLight __RPC_FAR *light,
  152. /* [in] */ float px,
  153. /* [in] */ float py,
  154. /* [in] */ float pz,
  155. /* [in] */ float nx,
  156. /* [in] */ float ny,
  157. /* [in] */ float nz,
  158. /* [retval][out] */ I_dxj_Direct3dRMShadow2 __RPC_FAR *__RPC_FAR *retv);
  159. HRESULT STDMETHODCALLTYPE createProgressiveMesh(
  160. /* [retval][out] */ I_dxj_Direct3dRMProgressiveMesh __RPC_FAR *__RPC_FAR *retv);
  161. HRESULT STDMETHODCALLTYPE createClippedVisual(
  162. /* [in] */ I_dxj_Direct3dRMVisual __RPC_FAR *vis,
  163. /* [retval][out] */ I_dxj_Direct3dRMClippedVisual __RPC_FAR *__RPC_FAR *ret);
  164. HRESULT STDMETHODCALLTYPE getOptions(
  165. /* [retval][out] */ long __RPC_FAR *options);
  166. HRESULT STDMETHODCALLTYPE setOptions(
  167. /* [in] */ long options);
  168. // HRESULT STDMETHODCALLTYPE createInterpolator(
  169. // /* [retval][out] */ I_dxj_Direct3dRMInterpolator __RPC_FAR *__RPC_FAR *retv);
  170. HRESULT STDMETHODCALLTYPE createInterpolatorMesh(
  171. /* [retval][out] */ I_dxj_Direct3dRMMeshInterpolator __RPC_FAR *__RPC_FAR *retv);
  172. HRESULT STDMETHODCALLTYPE createInterpolatorTexture(
  173. /* [retval][out] */ I_dxj_Direct3dRMTextureInterpolator __RPC_FAR *__RPC_FAR *retv);
  174. HRESULT STDMETHODCALLTYPE createInterpolatorMaterial(
  175. /* [retval][out] */ I_dxj_Direct3dRMMaterialInterpolator __RPC_FAR *__RPC_FAR *retv);
  176. HRESULT STDMETHODCALLTYPE createInterpolatorFrame(
  177. /* [retval][out] */ I_dxj_Direct3dRMFrameInterpolator __RPC_FAR *__RPC_FAR *retv);
  178. HRESULT STDMETHODCALLTYPE createInterpolatorViewport(
  179. /* [retval][out] */ I_dxj_Direct3dRMViewportInterpolator __RPC_FAR *__RPC_FAR *retv);
  180. HRESULT STDMETHODCALLTYPE createInterpolatorLight(
  181. /* [retval][out] */ I_dxj_Direct3dRMLightInterpolator __RPC_FAR *__RPC_FAR *retv);
  182. ////////////////////////////////////////////////////////////////////////////////////
  183. // note: this is public for the callbacks
  184. DECL_VARIABLE(_dxj_Direct3dRM3);
  185. private:
  186. HINSTANCE hinstLib;
  187. public:
  188. DX3J_GLOBAL_LINKS( _dxj_Direct3dRM3)
  189. };