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.

639 lines
26 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1998 - 1999
  6. //
  7. // File: dpmsgobj.cpp
  8. //
  9. //--------------------------------------------------------------------------
  10. #include "stdafx.h"
  11. #include "Direct.h"
  12. #include "dms.h"
  13. #include "dxfile.h"
  14. //#include "rmxftmpl.h"
  15. #include "rmxfguid.h"
  16. unsigned char D3DRM_XTEMPLATES2[] = {
  17. 0x78, 0x6f, 0x66, 0x20, 0x30, 0x33, 0x30, 0x32, 0x62,
  18. 0x69, 0x6e, 0x20, 0x30, 0x30, 0x36, 0x34, 0x1f, 0, 0x1,
  19. 0, 0x6, 0, 0, 0, 0x48, 0x65, 0x61, 0x64, 0x65,
  20. 0x72, 0xa, 0, 0x5, 0, 0x43, 0xab, 0x82, 0x3d, 0xda,
  21. 0x62, 0xcf, 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4,
  22. 0x33, 0x28, 0, 0x1, 0, 0x5, 0, 0, 0, 0x6d,
  23. 0x61, 0x6a, 0x6f, 0x72, 0x14, 0, 0x28, 0, 0x1, 0,
  24. 0x5, 0, 0, 0, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x14,
  25. 0, 0x29, 0, 0x1, 0, 0x5, 0, 0, 0, 0x66,
  26. 0x6c, 0x61, 0x67, 0x73, 0x14, 0, 0xb, 0, 0x1f, 0,
  27. 0x1, 0, 0x6, 0, 0, 0, 0x56, 0x65, 0x63, 0x74,
  28. 0x6f, 0x72, 0xa, 0, 0x5, 0, 0x5e, 0xab, 0x82, 0x3d,
  29. 0xda, 0x62, 0xcf, 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71,
  30. 0xe4, 0x33, 0x2a, 0, 0x1, 0, 0x1, 0, 0, 0,
  31. 0x78, 0x14, 0, 0x2a, 0, 0x1, 0, 0x1, 0, 0,
  32. 0, 0x79, 0x14, 0, 0x2a, 0, 0x1, 0, 0x1, 0,
  33. 0, 0, 0x7a, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1,
  34. 0, 0x8, 0, 0, 0, 0x43, 0x6f, 0x6f, 0x72, 0x64,
  35. 0x73, 0x32, 0x64, 0xa, 0, 0x5, 0, 0x44, 0x3f, 0xf2,
  36. 0xf6, 0x86, 0x76, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33,
  37. 0x35, 0x94, 0xa3, 0x2a, 0, 0x1, 0, 0x1, 0, 0,
  38. 0, 0x75, 0x14, 0, 0x2a, 0, 0x1, 0, 0x1, 0,
  39. 0, 0, 0x76, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1,
  40. 0, 0x9, 0, 0, 0, 0x4d, 0x61, 0x74, 0x72, 0x69,
  41. 0x78, 0x34, 0x78, 0x34, 0xa, 0, 0x5, 0, 0x45, 0x3f,
  42. 0xf2, 0xf6, 0x86, 0x76, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40,
  43. 0x33, 0x35, 0x94, 0xa3, 0x34, 0, 0x2a, 0, 0x1, 0,
  44. 0x6, 0, 0, 0, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78,
  45. 0xe, 0, 0x3, 0, 0x10, 0, 0, 0, 0xf, 0,
  46. 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0, 0x9, 0,
  47. 0, 0, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x47, 0x42,
  48. 0x41, 0xa, 0, 0x5, 0, 0xe0, 0x44, 0xff, 0x35, 0x7c,
  49. 0x6c, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94,
  50. 0xa3, 0x2a, 0, 0x1, 0, 0x3, 0, 0, 0, 0x72,
  51. 0x65, 0x64, 0x14, 0, 0x2a, 0, 0x1, 0, 0x5, 0,
  52. 0, 0, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x14, 0, 0x2a,
  53. 0, 0x1, 0, 0x4, 0, 0, 0, 0x62, 0x6c, 0x75,
  54. 0x65, 0x14, 0, 0x2a, 0, 0x1, 0, 0x5, 0, 0,
  55. 0, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x14, 0, 0xb, 0,
  56. 0x1f, 0, 0x1, 0, 0x8, 0, 0, 0, 0x43, 0x6f,
  57. 0x6c, 0x6f, 0x72, 0x52, 0x47, 0x42, 0xa, 0, 0x5, 0,
  58. 0x81, 0x6e, 0xe1, 0xd3, 0x35, 0x78, 0xcf, 0x11, 0x8f, 0x52,
  59. 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x2a, 0, 0x1, 0,
  60. 0x3, 0, 0, 0, 0x72, 0x65, 0x64, 0x14, 0, 0x2a,
  61. 0, 0x1, 0, 0x5, 0, 0, 0, 0x67, 0x72, 0x65,
  62. 0x65, 0x6e, 0x14, 0, 0x2a, 0, 0x1, 0, 0x4, 0,
  63. 0, 0, 0x62, 0x6c, 0x75, 0x65, 0x14, 0, 0xb, 0,
  64. 0x1f, 0, 0x1, 0, 0xc, 0, 0, 0, 0x49, 0x6e,
  65. 0x64, 0x65, 0x78, 0x65, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72,
  66. 0xa, 0, 0x5, 0, 0x20, 0xb8, 0x30, 0x16, 0x42, 0x78,
  67. 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3,
  68. 0x29, 0, 0x1, 0, 0x5, 0, 0, 0, 0x69, 0x6e,
  69. 0x64, 0x65, 0x78, 0x14, 0, 0x1, 0, 0x9, 0, 0,
  70. 0, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x47, 0x42, 0x41,
  71. 0x1, 0, 0xa, 0, 0, 0, 0x69, 0x6e, 0x64, 0x65,
  72. 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x14, 0, 0xb, 0,
  73. 0x1f, 0, 0x1, 0, 0x7, 0, 0, 0, 0x42, 0x6f,
  74. 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0xa, 0, 0x5, 0, 0xa0,
  75. 0xa6, 0x7d, 0x53, 0x37, 0xca, 0xd0, 0x11, 0x94, 0x1c, 0,
  76. 0x80, 0xc8, 0xc, 0xfa, 0x7b, 0x29, 0, 0x1, 0, 0x9,
  77. 0, 0, 0, 0x74, 0x72, 0x75, 0x65, 0x66, 0x61, 0x6c,
  78. 0x73, 0x65, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0,
  79. 0x9, 0, 0, 0, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61,
  80. 0x6e, 0x32, 0x64, 0xa, 0, 0x5, 0, 0x63, 0xae, 0x85,
  81. 0x48, 0xe8, 0x78, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33,
  82. 0x35, 0x94, 0xa3, 0x1, 0, 0x7, 0, 0, 0, 0x42,
  83. 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x1, 0, 0x1, 0,
  84. 0, 0, 0x75, 0x14, 0, 0x1, 0, 0x7, 0, 0,
  85. 0, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x1, 0,
  86. 0x1, 0, 0, 0, 0x76, 0x14, 0, 0xb, 0, 0x1f,
  87. 0, 0x1, 0, 0xc, 0, 0, 0, 0x4d, 0x61, 0x74,
  88. 0x65, 0x72, 0x69, 0x61, 0x6c, 0x57, 0x72, 0x61, 0x70, 0xa,
  89. 0, 0x5, 0, 0x60, 0xae, 0x85, 0x48, 0xe8, 0x78, 0xcf,
  90. 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x1,
  91. 0, 0x7, 0, 0, 0, 0x42, 0x6f, 0x6f, 0x6c, 0x65,
  92. 0x61, 0x6e, 0x1, 0, 0x1, 0, 0, 0, 0x75, 0x14,
  93. 0, 0x1, 0, 0x7, 0, 0, 0, 0x42, 0x6f, 0x6f,
  94. 0x6c, 0x65, 0x61, 0x6e, 0x1, 0, 0x1, 0, 0, 0,
  95. 0x76, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0, 0xf,
  96. 0, 0, 0, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65,
  97. 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0xa, 0,
  98. 0x5, 0, 0xe1, 0x90, 0x27, 0xa4, 0x10, 0x78, 0xcf, 0x11,
  99. 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x31, 0,
  100. 0x1, 0, 0x8, 0, 0, 0, 0x66, 0x69, 0x6c, 0x65,
  101. 0x6e, 0x61, 0x6d, 0x65, 0x14, 0, 0xb, 0, 0x1f, 0,
  102. 0x1, 0, 0x8, 0, 0, 0, 0x4d, 0x61, 0x74, 0x65,
  103. 0x72, 0x69, 0x61, 0x6c, 0xa, 0, 0x5, 0, 0x4d, 0xab,
  104. 0x82, 0x3d, 0xda, 0x62, 0xcf, 0x11, 0xab, 0x39, 0, 0x20,
  105. 0xaf, 0x71, 0xe4, 0x33, 0x1, 0, 0x9, 0, 0, 0,
  106. 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x47, 0x42, 0x41, 0x1,
  107. 0, 0x9, 0, 0, 0, 0x66, 0x61, 0x63, 0x65, 0x43,
  108. 0x6f, 0x6c, 0x6f, 0x72, 0x14, 0, 0x2a, 0, 0x1, 0,
  109. 0x5, 0, 0, 0, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x14,
  110. 0, 0x1, 0, 0x8, 0, 0, 0, 0x43, 0x6f, 0x6c,
  111. 0x6f, 0x72, 0x52, 0x47, 0x42, 0x1, 0, 0xd, 0, 0,
  112. 0, 0x73, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x43,
  113. 0x6f, 0x6c, 0x6f, 0x72, 0x14, 0, 0x1, 0, 0x8, 0,
  114. 0, 0, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x47, 0x42,
  115. 0x1, 0, 0xd, 0, 0, 0, 0x65, 0x6d, 0x69, 0x73,
  116. 0x73, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x14,
  117. 0, 0xe, 0, 0x12, 0, 0x12, 0, 0x12, 0, 0xf,
  118. 0, 0xb, 0, 0x1f, 0, 0x1, 0, 0x8, 0, 0,
  119. 0, 0x4d, 0x65, 0x73, 0x68, 0x46, 0x61, 0x63, 0x65, 0xa,
  120. 0, 0x5, 0, 0x5f, 0xab, 0x82, 0x3d, 0xda, 0x62, 0xcf,
  121. 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, 0x29,
  122. 0, 0x1, 0, 0x12, 0, 0, 0, 0x6e, 0x46, 0x61,
  123. 0x63, 0x65, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e,
  124. 0x64, 0x69, 0x63, 0x65, 0x73, 0x14, 0, 0x34, 0, 0x29,
  125. 0, 0x1, 0, 0x11, 0, 0, 0, 0x66, 0x61, 0x63,
  126. 0x65, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64,
  127. 0x69, 0x63, 0x65, 0x73, 0xe, 0, 0x1, 0, 0x12, 0,
  128. 0, 0, 0x6e, 0x46, 0x61, 0x63, 0x65, 0x56, 0x65, 0x72,
  129. 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73,
  130. 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0,
  131. 0xd, 0, 0, 0, 0x4d, 0x65, 0x73, 0x68, 0x46, 0x61,
  132. 0x63, 0x65, 0x57, 0x72, 0x61, 0x70, 0x73, 0xa, 0, 0x5,
  133. 0, 0xc0, 0xc5, 0x1e, 0xed, 0xa8, 0xc0, 0xd0, 0x11, 0x94,
  134. 0x1c, 0, 0x80, 0xc8, 0xc, 0xfa, 0x7b, 0x29, 0, 0x1,
  135. 0, 0xf, 0, 0, 0, 0x6e, 0x46, 0x61, 0x63, 0x65,
  136. 0x57, 0x72, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73,
  137. 0x14, 0, 0x34, 0, 0x1, 0, 0x9, 0, 0, 0,
  138. 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x32, 0x64, 0x1,
  139. 0, 0xe, 0, 0, 0, 0x66, 0x61, 0x63, 0x65, 0x57,
  140. 0x72, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0xe,
  141. 0, 0x1, 0, 0xf, 0, 0, 0, 0x6e, 0x46, 0x61,
  142. 0x63, 0x65, 0x57, 0x72, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75,
  143. 0x65, 0x73, 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 0,
  144. 0x1, 0, 0x11, 0, 0, 0, 0x4d, 0x65, 0x73, 0x68,
  145. 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6f,
  146. 0x72, 0x64, 0x73, 0xa, 0, 0x5, 0, 0x40, 0x3f, 0xf2,
  147. 0xf6, 0x86, 0x76, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33,
  148. 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 0, 0xe, 0, 0,
  149. 0, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43,
  150. 0x6f, 0x6f, 0x72, 0x64, 0x73, 0x14, 0, 0x34, 0, 0x1,
  151. 0, 0x8, 0, 0, 0, 0x43, 0x6f, 0x6f, 0x72, 0x64,
  152. 0x73, 0x32, 0x64, 0x1, 0, 0xd, 0, 0, 0, 0x74,
  153. 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6f, 0x72,
  154. 0x64, 0x73, 0xe, 0, 0x1, 0, 0xe, 0, 0, 0,
  155. 0x6e, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f,
  156. 0x6f, 0x72, 0x64, 0x73, 0xf, 0, 0x14, 0, 0xb, 0,
  157. 0x1f, 0, 0x1, 0, 0x10, 0, 0, 0, 0x4d, 0x65,
  158. 0x73, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c,
  159. 0x4c, 0x69, 0x73, 0x74, 0xa, 0, 0x5, 0, 0x42, 0x3f,
  160. 0xf2, 0xf6, 0x86, 0x76, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40,
  161. 0x33, 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 0, 0xa, 0,
  162. 0, 0, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61,
  163. 0x6c, 0x73, 0x14, 0, 0x29, 0, 0x1, 0, 0xc, 0,
  164. 0, 0, 0x6e, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x64,
  165. 0x65, 0x78, 0x65, 0x73, 0x14, 0, 0x34, 0, 0x29, 0,
  166. 0x1, 0, 0xb, 0, 0, 0, 0x66, 0x61, 0x63, 0x65,
  167. 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0xe, 0, 0x1,
  168. 0, 0xc, 0, 0, 0, 0x6e, 0x46, 0x61, 0x63, 0x65,
  169. 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0xf, 0, 0x14,
  170. 0, 0xe, 0, 0x1, 0, 0x8, 0, 0, 0, 0x4d,
  171. 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0xf, 0, 0xb,
  172. 0, 0x1f, 0, 0x1, 0, 0xb, 0, 0, 0, 0x4d,
  173. 0x65, 0x73, 0x68, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x73,
  174. 0xa, 0, 0x5, 0, 0x43, 0x3f, 0xf2, 0xf6, 0x86, 0x76,
  175. 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3,
  176. 0x29, 0, 0x1, 0, 0x8, 0, 0, 0, 0x6e, 0x4e,
  177. 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x73, 0x14, 0, 0x34, 0,
  178. 0x1, 0, 0x6, 0, 0, 0, 0x56, 0x65, 0x63, 0x74,
  179. 0x6f, 0x72, 0x1, 0, 0x7, 0, 0, 0, 0x6e, 0x6f,
  180. 0x72, 0x6d, 0x61, 0x6c, 0x73, 0xe, 0, 0x1, 0, 0x8,
  181. 0, 0, 0, 0x6e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c,
  182. 0x73, 0xf, 0, 0x14, 0, 0x29, 0, 0x1, 0, 0xc,
  183. 0, 0, 0, 0x6e, 0x46, 0x61, 0x63, 0x65, 0x4e, 0x6f,
  184. 0x72, 0x6d, 0x61, 0x6c, 0x73, 0x14, 0, 0x34, 0, 0x1,
  185. 0, 0x8, 0, 0, 0, 0x4d, 0x65, 0x73, 0x68, 0x46,
  186. 0x61, 0x63, 0x65, 0x1, 0, 0xb, 0, 0, 0, 0x66,
  187. 0x61, 0x63, 0x65, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x73,
  188. 0xe, 0, 0x1, 0, 0xc, 0, 0, 0, 0x6e, 0x46,
  189. 0x61, 0x63, 0x65, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x73,
  190. 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0,
  191. 0x10, 0, 0, 0, 0x4d, 0x65, 0x73, 0x68, 0x56, 0x65,
  192. 0x72, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x73,
  193. 0xa, 0, 0x5, 0, 0x21, 0xb8, 0x30, 0x16, 0x42, 0x78,
  194. 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3,
  195. 0x29, 0, 0x1, 0, 0xd, 0, 0, 0, 0x6e, 0x56,
  196. 0x65, 0x72, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72,
  197. 0x73, 0x14, 0, 0x34, 0, 0x1, 0, 0xc, 0, 0,
  198. 0, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x43, 0x6f,
  199. 0x6c, 0x6f, 0x72, 0x1, 0, 0xc, 0, 0, 0, 0x76,
  200. 0x65, 0x72, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72,
  201. 0x73, 0xe, 0, 0x1, 0, 0xd, 0, 0, 0, 0x6e,
  202. 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f,
  203. 0x72, 0x73, 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 0,
  204. 0x1, 0, 0x4, 0, 0, 0, 0x4d, 0x65, 0x73, 0x68,
  205. 0xa, 0, 0x5, 0, 0x44, 0xab, 0x82, 0x3d, 0xda, 0x62,
  206. 0xcf, 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33,
  207. 0x29, 0, 0x1, 0, 0x9, 0, 0, 0, 0x6e, 0x56,
  208. 0x65, 0x72, 0x74, 0x69, 0x63, 0x65, 0x73, 0x14, 0, 0x34,
  209. 0, 0x1, 0, 0x6, 0, 0, 0, 0x56, 0x65, 0x63,
  210. 0x74, 0x6f, 0x72, 0x1, 0, 0x8, 0, 0, 0, 0x76,
  211. 0x65, 0x72, 0x74, 0x69, 0x63, 0x65, 0x73, 0xe, 0, 0x1,
  212. 0, 0x9, 0, 0, 0, 0x6e, 0x56, 0x65, 0x72, 0x74,
  213. 0x69, 0x63, 0x65, 0x73, 0xf, 0, 0x14, 0, 0x29, 0,
  214. 0x1, 0, 0x6, 0, 0, 0, 0x6e, 0x46, 0x61, 0x63,
  215. 0x65, 0x73, 0x14, 0, 0x34, 0, 0x1, 0, 0x8, 0,
  216. 0, 0, 0x4d, 0x65, 0x73, 0x68, 0x46, 0x61, 0x63, 0x65,
  217. 0x1, 0, 0x5, 0, 0, 0, 0x66, 0x61, 0x63, 0x65,
  218. 0x73, 0xe, 0, 0x1, 0, 0x6, 0, 0, 0, 0x6e,
  219. 0x46, 0x61, 0x63, 0x65, 0x73, 0xf, 0, 0x14, 0, 0xe,
  220. 0, 0x12, 0, 0x12, 0, 0x12, 0, 0xf, 0, 0xb,
  221. 0, 0x1f, 0, 0x1, 0, 0x14, 0, 0, 0, 0x46,
  222. 0x72, 0x61, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66,
  223. 0x6f, 0x72, 0x6d, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0xa,
  224. 0, 0x5, 0, 0x41, 0x3f, 0xf2, 0xf6, 0x86, 0x76, 0xcf,
  225. 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x1,
  226. 0, 0x9, 0, 0, 0, 0x4d, 0x61, 0x74, 0x72, 0x69,
  227. 0x78, 0x34, 0x78, 0x34, 0x1, 0, 0xb, 0, 0, 0,
  228. 0x66, 0x72, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69,
  229. 0x78, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0, 0x5,
  230. 0, 0, 0, 0x46, 0x72, 0x61, 0x6d, 0x65, 0xa, 0,
  231. 0x5, 0, 0x46, 0xab, 0x82, 0x3d, 0xda, 0x62, 0xcf, 0x11,
  232. 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, 0xe, 0,
  233. 0x12, 0, 0x12, 0, 0x12, 0, 0xf, 0, 0xb, 0,
  234. 0x1f, 0, 0x1, 0, 0x9, 0, 0, 0, 0x46, 0x6c,
  235. 0x6f, 0x61, 0x74, 0x4b, 0x65, 0x79, 0x73, 0xa, 0, 0x5,
  236. 0, 0xa9, 0x46, 0xdd, 0x10, 0x5b, 0x77, 0xcf, 0x11, 0x8f,
  237. 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x29, 0, 0x1,
  238. 0, 0x7, 0, 0, 0, 0x6e, 0x56, 0x61, 0x6c, 0x75,
  239. 0x65, 0x73, 0x14, 0, 0x34, 0, 0x2a, 0, 0x1, 0,
  240. 0x6, 0, 0, 0, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73,
  241. 0xe, 0, 0x1, 0, 0x7, 0, 0, 0, 0x6e, 0x56,
  242. 0x61, 0x6c, 0x75, 0x65, 0x73, 0xf, 0, 0x14, 0, 0xb,
  243. 0, 0x1f, 0, 0x1, 0, 0xe, 0, 0, 0, 0x54,
  244. 0x69, 0x6d, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x4b,
  245. 0x65, 0x79, 0x73, 0xa, 0, 0x5, 0, 0x80, 0xb1, 0x6,
  246. 0xf4, 0x3b, 0x7b, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33,
  247. 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 0, 0x4, 0, 0,
  248. 0, 0x74, 0x69, 0x6d, 0x65, 0x14, 0, 0x1, 0, 0x9,
  249. 0, 0, 0, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x4b, 0x65,
  250. 0x79, 0x73, 0x1, 0, 0x6, 0, 0, 0, 0x74, 0x66,
  251. 0x6b, 0x65, 0x79, 0x73, 0x14, 0, 0xb, 0, 0x1f, 0,
  252. 0x1, 0, 0xc, 0, 0, 0, 0x41, 0x6e, 0x69, 0x6d,
  253. 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0xa, 0,
  254. 0x5, 0, 0xa8, 0x46, 0xdd, 0x10, 0x5b, 0x77, 0xcf, 0x11,
  255. 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x29, 0,
  256. 0x1, 0, 0x7, 0, 0, 0, 0x6b, 0x65, 0x79, 0x54,
  257. 0x79, 0x70, 0x65, 0x14, 0, 0x29, 0, 0x1, 0, 0x5,
  258. 0, 0, 0, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x14, 0,
  259. 0x34, 0, 0x1, 0, 0xe, 0, 0, 0, 0x54, 0x69,
  260. 0x6d, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x4b, 0x65,
  261. 0x79, 0x73, 0x1, 0, 0x4, 0, 0, 0, 0x6b, 0x65,
  262. 0x79, 0x73, 0xe, 0, 0x1, 0, 0x5, 0, 0, 0,
  263. 0x6e, 0x4b, 0x65, 0x79, 0x73, 0xf, 0, 0x14, 0, 0xb,
  264. 0, 0x1f, 0, 0x1, 0, 0x10, 0, 0, 0, 0x41,
  265. 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70,
  266. 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xa, 0, 0x5, 0, 0xc0,
  267. 0x56, 0xbf, 0xe2, 0xf, 0x84, 0xcf, 0x11, 0x8f, 0x52, 0,
  268. 0x40, 0x33, 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 0, 0xa,
  269. 0, 0, 0, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f,
  270. 0x73, 0x65, 0x64, 0x14, 0, 0x29, 0, 0x1, 0, 0xf,
  271. 0, 0, 0, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
  272. 0x6e, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x14, 0,
  273. 0xb, 0, 0x1f, 0, 0x1, 0, 0x9, 0, 0, 0,
  274. 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xa,
  275. 0, 0x5, 0, 0x4f, 0xab, 0x82, 0x3d, 0xda, 0x62, 0xcf,
  276. 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, 0xe,
  277. 0, 0x12, 0, 0x12, 0, 0x12, 0, 0xf, 0, 0xb,
  278. 0, 0x1f, 0, 0x1, 0, 0xc, 0, 0, 0, 0x41,
  279. 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65,
  280. 0x74, 0xa, 0, 0x5, 0, 0x50, 0xab, 0x82, 0x3d, 0xda,
  281. 0x62, 0xcf, 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4,
  282. 0x33, 0xe, 0, 0x1, 0, 0x9, 0, 0, 0, 0x41,
  283. 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xf, 0,
  284. 0xb, 0, 0x1f, 0, 0x1, 0, 0xa, 0, 0, 0,
  285. 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61,
  286. 0xa, 0, 0x5, 0, 0xa0, 0xee, 0x23, 0x3a, 0xb1, 0x94,
  287. 0xd0, 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33,
  288. 0xe, 0, 0x1, 0, 0x6, 0, 0, 0, 0x42, 0x49,
  289. 0x4e, 0x41, 0x52, 0x59, 0xf, 0, 0xb, 0, 0x1f, 0,
  290. 0x1, 0, 0x3, 0, 0, 0, 0x55, 0x72, 0x6c, 0xa,
  291. 0, 0x5, 0, 0xa1, 0xee, 0x23, 0x3a, 0xb1, 0x94, 0xd0,
  292. 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, 0x29,
  293. 0, 0x1, 0, 0x5, 0, 0, 0, 0x6e, 0x55, 0x72,
  294. 0x6c, 0x73, 0x14, 0, 0x34, 0, 0x31, 0, 0x1, 0,
  295. 0x4, 0, 0, 0, 0x75, 0x72, 0x6c, 0x73, 0xe, 0,
  296. 0x1, 0, 0x5, 0, 0, 0, 0x6e, 0x55, 0x72, 0x6c,
  297. 0x73, 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1,
  298. 0, 0xf, 0, 0, 0, 0x50, 0x72, 0x6f, 0x67, 0x72,
  299. 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x68,
  300. 0xa, 0, 0x5, 0, 0x60, 0xc3, 0x63, 0x8a, 0x7d, 0x99,
  301. 0xd0, 0x11, 0x94, 0x1c, 0, 0x80, 0xc8, 0xc, 0xfa, 0x7b,
  302. 0xe, 0, 0x1, 0, 0x3, 0, 0, 0, 0x55, 0x72,
  303. 0x6c, 0x13, 0, 0x1, 0, 0xa, 0, 0, 0, 0x49,
  304. 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0xf,
  305. 0, 0xb, 0, 0x1f, 0, 0x1, 0, 0x4, 0, 0,
  306. 0, 0x47, 0x75, 0x69, 0x64, 0xa, 0, 0x5, 0, 0xe0,
  307. 0x90, 0x27, 0xa4, 0x10, 0x78, 0xcf, 0x11, 0x8f, 0x52, 0,
  308. 0x40, 0x33, 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 0, 0x5,
  309. 0, 0, 0, 0x64, 0x61, 0x74, 0x61, 0x31, 0x14, 0,
  310. 0x28, 0, 0x1, 0, 0x5, 0, 0, 0, 0x64, 0x61,
  311. 0x74, 0x61, 0x32, 0x14, 0, 0x28, 0, 0x1, 0, 0x5,
  312. 0, 0, 0, 0x64, 0x61, 0x74, 0x61, 0x33, 0x14, 0,
  313. 0x34, 0, 0x2d, 0, 0x1, 0, 0x5, 0, 0, 0,
  314. 0x64, 0x61, 0x74, 0x61, 0x34, 0xe, 0, 0x3, 0, 0x8,
  315. 0, 0, 0, 0xf, 0, 0x14, 0, 0xb, 0, 0x1f,
  316. 0, 0x1, 0, 0xe, 0, 0, 0, 0x53, 0x74, 0x72,
  317. 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
  318. 0x79, 0xa, 0, 0x5, 0, 0xe0, 0x21, 0xf, 0x7f, 0xe1,
  319. 0xbf, 0xd1, 0x11, 0x82, 0xc0, 0, 0xa0, 0xc9, 0x69, 0x72,
  320. 0x71, 0x31, 0, 0x1, 0, 0x3, 0, 0, 0, 0x6b,
  321. 0x65, 0x79, 0x14, 0, 0x31, 0, 0x1, 0, 0x5, 0,
  322. 0, 0, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x14, 0, 0xb,
  323. 0, 0x1f, 0, 0x1, 0, 0xb, 0, 0, 0, 0x50,
  324. 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x42, 0x61, 0x67,
  325. 0xa, 0, 0x5, 0, 0xe1, 0x21, 0xf, 0x7f, 0xe1, 0xbf,
  326. 0xd1, 0x11, 0x82, 0xc0, 0, 0xa0, 0xc9, 0x69, 0x72, 0x71,
  327. 0xe, 0, 0x1, 0, 0xe, 0, 0, 0, 0x53, 0x74,
  328. 0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
  329. 0x74, 0x79, 0xf, 0, 0xb, 0, 0x1f, 0, 0x1, 0,
  330. 0xe, 0, 0, 0, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e,
  331. 0x61, 0x6c, 0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0xa, 0,
  332. 0x5, 0, 0xa0, 0x6a, 0x11, 0x98, 0xba, 0xbd, 0xd1, 0x11,
  333. 0x82, 0xc0, 0, 0xa0, 0xc9, 0x69, 0x72, 0x71, 0x1, 0,
  334. 0x4, 0, 0, 0, 0x47, 0x75, 0x69, 0x64, 0x1, 0,
  335. 0x12, 0, 0, 0, 0x67, 0x75, 0x69, 0x64, 0x45, 0x78,
  336. 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x56, 0x69, 0x73, 0x75,
  337. 0x61, 0x6c, 0x14, 0, 0xe, 0, 0x12, 0, 0x12, 0,
  338. 0x12, 0, 0xf, 0, 0xb, 0, 0x1f, 0, 0x1, 0,
  339. 0xb, 0, 0, 0, 0x52, 0x69, 0x67, 0x68, 0x74, 0x48,
  340. 0x61, 0x6e, 0x64, 0x65, 0x64, 0xa, 0, 0x5, 0, 0xa0,
  341. 0x5e, 0x5d, 0x7f, 0x3a, 0xd5, 0xd1, 0x11, 0x82, 0xc0, 0,
  342. 0xa0, 0xc9, 0x69, 0x72, 0x71, 0x29, 0, 0x1, 0, 0xc,
  343. 0, 0, 0, 0x62, 0x52, 0x69, 0x67, 0x68, 0x74, 0x48,
  344. 0x61, 0x6e, 0x64, 0x65, 0x64, 0x14, 0, 0xb, 0
  345. };
  346. #define D3DRM_XTEMPLATE_BYTES 3278
  347. #include "rmxfguid.h"
  348. #include "XfileObj.h"
  349. #include "XfileSaveObj.h"
  350. #include "XfileEnumObj.h"
  351. WCHAR *szXFileGuids[]={
  352. L"TID_D3DRMInfo",
  353. L"TID_D3DRMMesh",
  354. L"TID_D3DRMVector",
  355. L"TID_D3DRMMeshFace",
  356. L"TID_D3DRMMaterial",
  357. L"TID_D3DRMMaterialArray",
  358. L"TID_D3DRMFrame",
  359. L"TID_D3DRMFrameTransformMatrix",
  360. L"TID_D3DRMMeshMaterialList",
  361. L"TID_D3DRMMeshTextureCoords",
  362. L"TID_D3DRMMeshNormals",
  363. L"TID_D3DRMCoords2d",
  364. L"TID_D3DRMMatrix4x4",
  365. L"TID_D3DRMAnimation",
  366. L"TID_D3DRMAnimationSet",
  367. L"TID_D3DRMAnimationKey",
  368. L"TID_D3DRMFloatKeys",
  369. L"TID_D3DRMMaterialAmbientColor",
  370. L"TID_D3DRMMaterialDiffuseColor",
  371. L"TID_D3DRMMaterialSpecularColor",
  372. L"TID_D3DRMMaterialEmissiveColor",
  373. L"TID_D3DRMMaterialPower",
  374. L"TID_D3DRMColorRGBA",
  375. L"TID_D3DRMColorRGB",
  376. L"TID_D3DRMGuid",
  377. L"TID_D3DRMTextureFilename",
  378. L"TID_D3DRMTextureReference",
  379. L"TID_D3DRMIndexedColor",
  380. L"TID_D3DRMMeshVertexColors",
  381. L"TID_D3DRMMaterialWrap",
  382. L"TID_D3DRMBoolean",
  383. L"TID_D3DRMMeshFaceWraps",
  384. L"TID_D3DRMBoolean2d",
  385. L"TID_D3DRMTimedFloatKeys",
  386. L"TID_D3DRMAnimationOptions",
  387. L"TID_D3DRMFramePosition",
  388. L"TID_D3DRMFrameVelocity",
  389. L"TID_D3DRMFrameRotation",
  390. L"TID_D3DRMLight",
  391. L"TID_D3DRMCamera",
  392. L"TID_D3DRMAppData",
  393. L"TID_D3DRMLightUmbra",
  394. L"TID_D3DRMLightRange",
  395. L"TID_D3DRMLightPenumbra",
  396. L"TID_D3DRMLightAttenuation",
  397. L"TID_D3DRMInlineData",
  398. L"TID_D3DRMUrl",
  399. L"TID_D3DRMProgressiveMesh",
  400. L"TID_D3DRMExternalVisual",
  401. L"TID_D3DRMStringProperty",
  402. L"TID_D3DRMPropertyBag",
  403. L"TID_D3DRMRightHanded"
  404. };
  405. const GUID *XFileGuids[]={
  406. &TID_D3DRMInfo,
  407. &TID_D3DRMMesh,
  408. &TID_D3DRMVector,
  409. &TID_D3DRMMeshFace,
  410. &TID_D3DRMMaterial,
  411. &TID_D3DRMMaterialArray,
  412. &TID_D3DRMFrame,
  413. &TID_D3DRMFrameTransformMatrix,
  414. &TID_D3DRMMeshMaterialList,
  415. &TID_D3DRMMeshTextureCoords,
  416. &TID_D3DRMMeshNormals,
  417. &TID_D3DRMCoords2d,
  418. &TID_D3DRMMatrix4x4,
  419. &TID_D3DRMAnimation,
  420. &TID_D3DRMAnimationSet,
  421. &TID_D3DRMAnimationKey,
  422. &TID_D3DRMFloatKeys,
  423. &TID_D3DRMMaterialAmbientColor,
  424. &TID_D3DRMMaterialDiffuseColor,
  425. &TID_D3DRMMaterialSpecularColor,
  426. &TID_D3DRMMaterialEmissiveColor,
  427. &TID_D3DRMMaterialPower,
  428. &TID_D3DRMColorRGBA,
  429. &TID_D3DRMColorRGB,
  430. &TID_D3DRMGuid,
  431. &TID_D3DRMTextureFilename,
  432. &TID_D3DRMTextureReference,
  433. &TID_D3DRMIndexedColor,
  434. &TID_D3DRMMeshVertexColors,
  435. &TID_D3DRMMaterialWrap,
  436. &TID_D3DRMBoolean,
  437. &TID_D3DRMMeshFaceWraps,
  438. &TID_D3DRMBoolean2d,
  439. &TID_D3DRMTimedFloatKeys,
  440. &TID_D3DRMAnimationOptions,
  441. &TID_D3DRMFramePosition,
  442. &TID_D3DRMFrameVelocity,
  443. &TID_D3DRMFrameRotation,
  444. &TID_D3DRMLight,
  445. &TID_D3DRMCamera,
  446. &TID_D3DRMAppData,
  447. &TID_D3DRMLightUmbra,
  448. &TID_D3DRMLightRange,
  449. &TID_D3DRMLightPenumbra,
  450. &TID_D3DRMLightAttenuation,
  451. &TID_D3DRMInlineData,
  452. &TID_D3DRMUrl,
  453. &TID_D3DRMProgressiveMesh,
  454. &TID_D3DRMExternalVisual,
  455. &TID_D3DRMStringProperty,
  456. &TID_D3DRMPropertyBag,
  457. &TID_D3DRMRightHanded
  458. };
  459. #define NUM_XFILE_GUIDS 52
  460. extern HRESULT BSTRtoGUID(LPGUID,BSTR);
  461. extern BSTR GUIDtoBSTR(LPGUID);
  462. HRESULT XFILEBSTRtoGUID(LPGUID lpG,BSTR strG)
  463. {
  464. if (!strG) {
  465. ZeroMemory(lpG,sizeof(GUID));
  466. return S_OK;
  467. }
  468. if (strG[0]==0) {
  469. ZeroMemory(lpG,sizeof(GUID));
  470. return S_OK;
  471. }
  472. for(int i=0;i<NUM_XFILE_GUIDS;i++){
  473. if (0==_wcsicmp((WCHAR*)strG,szXFileGuids[i]))
  474. {
  475. memcpy(lpG,XFileGuids[i],sizeof(GUID));
  476. return S_OK;
  477. }
  478. }
  479. return BSTRtoGUID (lpG,strG);
  480. }
  481. #define GUIDS_EQUAL2(g,g2) (\
  482. (g->Data1==g2->Data1) && \
  483. (g->Data2==g2->Data2) && \
  484. (g->Data3==g2->Data3) && \
  485. (g->Data4[0]==g2->Data4[0]) && \
  486. (g->Data4[1]==g2->Data4[1]) && \
  487. (g->Data4[2]==g2->Data4[2]) && \
  488. (g->Data4[3]==g2->Data4[3]) && \
  489. (g->Data4[4]==g2->Data4[4]) && \
  490. (g->Data4[5]==g2->Data4[5]) && \
  491. (g->Data4[6]==g2->Data4[6]) && \
  492. (g->Data4[7]==g2->Data4[7]) )
  493. BSTR XFILEGUIDtoBSTR(LPGUID lpG)
  494. {
  495. if (!lpG) return NULL;
  496. for(int i=0;i<NUM_XFILE_GUIDS;i++)
  497. {
  498. //
  499. if (GUIDS_EQUAL2(XFileGuids[i],lpG)){
  500. return SysAllocString(szXFileGuids[i]);
  501. }
  502. }
  503. return GUIDtoBSTR(lpG);
  504. }
  505. C_dxj_DirectXFileObject::C_dxj_DirectXFileObject()
  506. {
  507. m_pDirectXFile=NULL;
  508. }
  509. C_dxj_DirectXFileObject::~C_dxj_DirectXFileObject()
  510. {
  511. if (m_pDirectXFile) m_pDirectXFile->Release();
  512. }
  513. HRESULT C_dxj_DirectXFileObject::create( I_dxj_DirectXFile **ret)
  514. {
  515. HRESULT hr;
  516. if (!ret) return E_INVALIDARG;
  517. C_dxj_DirectXFileObject *c=NULL;
  518. c=new CComObject<C_dxj_DirectXFileObject>;
  519. if( c == NULL ) return E_OUTOFMEMORY;
  520. hr=c->Init();
  521. if FAILED(hr) {
  522. delete c;
  523. return hr;
  524. }
  525. hr=c->QueryInterface(IID_I_dxj_DirectXFile, (void**)ret);
  526. return hr;
  527. }
  528. HRESULT C_dxj_DirectXFileObject::Init ()
  529. {
  530. HRESULT hr;
  531. hr=DirectXFileCreate(&m_pDirectXFile);
  532. return hr;
  533. }
  534. HRESULT C_dxj_DirectXFileObject::CreateEnumObject(
  535. /* [in] */ BSTR __RPC_FAR filename,
  536. /* [retval][out] */ I_dxj_DirectXFileEnum __RPC_FAR *__RPC_FAR *ret)
  537. {
  538. USES_CONVERSION;
  539. HRESULT hr;
  540. LPSTR szName = NULL;
  541. __try { szName = W2T(filename); } __except(EXCEPTION_EXECUTE_HANDLER) { return E_FAIL; }
  542. LPDIRECTXFILEENUMOBJECT pEnum=NULL;
  543. hr=m_pDirectXFile->CreateEnumObject(szName,DXFILELOAD_FROMFILE ,&pEnum);
  544. if FAILED(hr) return hr;
  545. hr=C_dxj_DirectXFileEnumObject::create (pEnum,ret);
  546. if FAILED(hr) {
  547. pEnum->Release();
  548. }
  549. return hr;
  550. }
  551. HRESULT C_dxj_DirectXFileObject::CreateSaveObject(
  552. /* [in] */ BSTR filename,
  553. /* [in] */ long flags,
  554. /* [retval][out] */ I_dxj_DirectXFileSave __RPC_FAR *__RPC_FAR *ret)
  555. {
  556. USES_CONVERSION;
  557. HRESULT hr;
  558. LPSTR szName = NULL;
  559. __try { szName = W2T(filename); } __except(EXCEPTION_EXECUTE_HANDLER) { return E_FAIL; }
  560. LPDIRECTXFILESAVEOBJECT pSave=NULL;
  561. hr=m_pDirectXFile->CreateSaveObject(szName,(DWORD)flags, &pSave);
  562. if FAILED(hr) return hr;
  563. //Note ::create does addref pSave on success
  564. hr=C_dxj_DirectXFileSaveObject::create (pSave,ret);
  565. if (pSave) pSave->Release();
  566. return hr;
  567. }
  568. HRESULT C_dxj_DirectXFileObject::RegisterTemplates(
  569. /* [in] */ void __RPC_FAR *temp,
  570. /* [in] */ long size)
  571. {
  572. HRESULT hr;
  573. __try{
  574. hr=m_pDirectXFile->RegisterTemplates(temp,(DWORD)size);
  575. if FAILED(hr) return hr;
  576. }
  577. __except(1,1){
  578. return E_INVALIDARG;
  579. }
  580. return hr;
  581. }
  582. HRESULT C_dxj_DirectXFileObject::RegisterDefaultTemplates( void)
  583. {
  584. HRESULT hr;
  585. hr=m_pDirectXFile->RegisterTemplates(D3DRM_XTEMPLATES2,D3DRM_XTEMPLATE_BYTES );
  586. return hr;
  587. }