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.

496 lines
15 KiB

  1. // Copyright (c) 1999 Microsoft Corporation. All Rights Reserved.
  2. #ifndef _MSVIDWEBDVDCP_H_
  3. #define _MSVIDWEBDVDCP_H_
  4. template <class T>
  5. class CProxy_WebDVDEvent : public CProxy_PlaybackEvent<T, &IID_IMSVidWebDVDEvent, CComDynamicUnkArray>
  6. {
  7. //Warning this class may be recreated by the wizard.
  8. public:
  9. VOID Fire_DVDNotify(long lEventCode, VARIANT lParam1, VARIANT lParam2)
  10. {
  11. T* pT = static_cast<T*>(this);
  12. int nConnectionIndex;
  13. CComVariant* pvars = new CComVariant[3];
  14. int nConnections = m_vec.GetSize();
  15. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  16. {
  17. pT->Lock();
  18. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  19. pT->Unlock();
  20. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  21. if (pDispatch != NULL)
  22. {
  23. pvars[2] = lEventCode;
  24. pvars[1] = lParam1;
  25. pvars[0] = lParam2;
  26. DISPPARAMS disp = { pvars, NULL, 3, 0 };
  27. pDispatch->Invoke(eventidDVDNotify, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  28. }
  29. }
  30. delete[] pvars;
  31. }
  32. VOID Fire_PlayForwards(VARIANT_BOOL bEnabled)
  33. {
  34. T* pT = static_cast<T*>(this);
  35. int nConnectionIndex;
  36. CComVariant* pvars = new CComVariant[1];
  37. int nConnections = m_vec.GetSize();
  38. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  39. {
  40. pT->Lock();
  41. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  42. pT->Unlock();
  43. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  44. if (pDispatch != NULL)
  45. {
  46. pvars[0] = bEnabled;
  47. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  48. pDispatch->Invoke(eventidPlayForwards, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  49. }
  50. }
  51. delete[] pvars;
  52. }
  53. VOID Fire_PlayBackwards(VARIANT_BOOL bEnabled)
  54. {
  55. T* pT = static_cast<T*>(this);
  56. int nConnectionIndex;
  57. CComVariant* pvars = new CComVariant[1];
  58. int nConnections = m_vec.GetSize();
  59. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  60. {
  61. pT->Lock();
  62. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  63. pT->Unlock();
  64. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  65. if (pDispatch != NULL)
  66. {
  67. pvars[0] = bEnabled;
  68. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  69. pDispatch->Invoke(eventidPlayBackwards, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  70. }
  71. }
  72. delete[] pvars;
  73. }
  74. VOID Fire_ShowMenu(DVDMenuIDConstants __MIDL_0011, VARIANT_BOOL bEnabled)
  75. {
  76. T* pT = static_cast<T*>(this);
  77. int nConnectionIndex;
  78. CComVariant* pvars = new CComVariant[2];
  79. int nConnections = m_vec.GetSize();
  80. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  81. {
  82. pT->Lock();
  83. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  84. pT->Unlock();
  85. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  86. if (pDispatch != NULL)
  87. {
  88. pvars[1] = __MIDL_0011;
  89. pvars[0] = bEnabled;
  90. DISPPARAMS disp = { pvars, NULL, 2, 0 };
  91. pDispatch->Invoke(eventidShowMenu, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  92. }
  93. }
  94. delete[] pvars;
  95. }
  96. VOID Fire_Resume(VARIANT_BOOL bEnabled)
  97. {
  98. T* pT = static_cast<T*>(this);
  99. int nConnectionIndex;
  100. CComVariant* pvars = new CComVariant[1];
  101. int nConnections = m_vec.GetSize();
  102. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  103. {
  104. pT->Lock();
  105. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  106. pT->Unlock();
  107. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  108. if (pDispatch != NULL)
  109. {
  110. pvars[0] = bEnabled;
  111. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  112. pDispatch->Invoke(eventidResume, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  113. }
  114. }
  115. delete[] pvars;
  116. }
  117. VOID Fire_SelectOrActivateButton(VARIANT_BOOL bEnabled)
  118. {
  119. T* pT = static_cast<T*>(this);
  120. int nConnectionIndex;
  121. CComVariant* pvars = new CComVariant[1];
  122. int nConnections = m_vec.GetSize();
  123. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  124. {
  125. pT->Lock();
  126. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  127. pT->Unlock();
  128. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  129. if (pDispatch != NULL)
  130. {
  131. pvars[0] = bEnabled;
  132. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  133. pDispatch->Invoke(eventidSelectOrActivateButton, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  134. }
  135. }
  136. delete[] pvars;
  137. }
  138. VOID Fire_StillOff(VARIANT_BOOL bEnabled)
  139. {
  140. T* pT = static_cast<T*>(this);
  141. int nConnectionIndex;
  142. CComVariant* pvars = new CComVariant[1];
  143. int nConnections = m_vec.GetSize();
  144. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  145. {
  146. pT->Lock();
  147. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  148. pT->Unlock();
  149. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  150. if (pDispatch != NULL)
  151. {
  152. pvars[0] = bEnabled;
  153. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  154. pDispatch->Invoke(eventidStillOff, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  155. }
  156. }
  157. delete[] pvars;
  158. }
  159. VOID Fire_PauseOn(VARIANT_BOOL bEnabled)
  160. {
  161. T* pT = static_cast<T*>(this);
  162. int nConnectionIndex;
  163. CComVariant* pvars = new CComVariant[1];
  164. int nConnections = m_vec.GetSize();
  165. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  166. {
  167. pT->Lock();
  168. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  169. pT->Unlock();
  170. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  171. if (pDispatch != NULL)
  172. {
  173. pvars[0] = bEnabled;
  174. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  175. pDispatch->Invoke(eventidPauseOn, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  176. }
  177. }
  178. delete[] pvars;
  179. }
  180. VOID Fire_ChangeCurrentAudioStream(VARIANT_BOOL bEnabled)
  181. {
  182. T* pT = static_cast<T*>(this);
  183. int nConnectionIndex;
  184. CComVariant* pvars = new CComVariant[1];
  185. int nConnections = m_vec.GetSize();
  186. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  187. {
  188. pT->Lock();
  189. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  190. pT->Unlock();
  191. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  192. if (pDispatch != NULL)
  193. {
  194. pvars[0] = bEnabled;
  195. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  196. pDispatch->Invoke(eventidChangeCurrentAudioStream, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  197. }
  198. }
  199. delete[] pvars;
  200. }
  201. VOID Fire_ChangeCurrentSubpictureStream(VARIANT_BOOL bEnabled)
  202. {
  203. T* pT = static_cast<T*>(this);
  204. int nConnectionIndex;
  205. CComVariant* pvars = new CComVariant[1];
  206. int nConnections = m_vec.GetSize();
  207. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  208. {
  209. pT->Lock();
  210. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  211. pT->Unlock();
  212. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  213. if (pDispatch != NULL)
  214. {
  215. pvars[0] = bEnabled;
  216. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  217. pDispatch->Invoke(eventidChangeCurrentSubpictureStream, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  218. }
  219. }
  220. delete[] pvars;
  221. }
  222. VOID Fire_ChangeCurrentAngle(VARIANT_BOOL bEnabled)
  223. {
  224. T* pT = static_cast<T*>(this);
  225. int nConnectionIndex;
  226. CComVariant* pvars = new CComVariant[1];
  227. int nConnections = m_vec.GetSize();
  228. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  229. {
  230. pT->Lock();
  231. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  232. pT->Unlock();
  233. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  234. if (pDispatch != NULL)
  235. {
  236. pvars[0] = bEnabled;
  237. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  238. pDispatch->Invoke(eventidChangeCurrentAngle, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  239. }
  240. }
  241. delete[] pvars;
  242. }
  243. VOID Fire_PlayAtTimeInTitle(VARIANT_BOOL bEnabled)
  244. {
  245. T* pT = static_cast<T*>(this);
  246. int nConnectionIndex;
  247. CComVariant* pvars = new CComVariant[1];
  248. int nConnections = m_vec.GetSize();
  249. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  250. {
  251. pT->Lock();
  252. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  253. pT->Unlock();
  254. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  255. if (pDispatch != NULL)
  256. {
  257. pvars[0] = bEnabled;
  258. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  259. pDispatch->Invoke(eventidPlayAtTimeInTitle, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  260. }
  261. }
  262. delete[] pvars;
  263. }
  264. VOID Fire_PlayAtTime(VARIANT_BOOL bEnabled)
  265. {
  266. T* pT = static_cast<T*>(this);
  267. int nConnectionIndex;
  268. CComVariant* pvars = new CComVariant[1];
  269. int nConnections = m_vec.GetSize();
  270. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  271. {
  272. pT->Lock();
  273. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  274. pT->Unlock();
  275. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  276. if (pDispatch != NULL)
  277. {
  278. pvars[0] = bEnabled;
  279. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  280. pDispatch->Invoke(eventidPlayAtTime, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  281. }
  282. }
  283. delete[] pvars;
  284. }
  285. VOID Fire_PlayChapterInTitle(VARIANT_BOOL bEnabled)
  286. {
  287. T* pT = static_cast<T*>(this);
  288. int nConnectionIndex;
  289. CComVariant* pvars = new CComVariant[1];
  290. int nConnections = m_vec.GetSize();
  291. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  292. {
  293. pT->Lock();
  294. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  295. pT->Unlock();
  296. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  297. if (pDispatch != NULL)
  298. {
  299. pvars[0] = bEnabled;
  300. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  301. pDispatch->Invoke(eventidPlayChapterInTitle, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  302. }
  303. }
  304. delete[] pvars;
  305. }
  306. VOID Fire_PlayChapter(VARIANT_BOOL bEnabled)
  307. {
  308. T* pT = static_cast<T*>(this);
  309. int nConnectionIndex;
  310. CComVariant* pvars = new CComVariant[1];
  311. int nConnections = m_vec.GetSize();
  312. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  313. {
  314. pT->Lock();
  315. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  316. pT->Unlock();
  317. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  318. if (pDispatch != NULL)
  319. {
  320. pvars[0] = bEnabled;
  321. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  322. pDispatch->Invoke(eventidPlayChapter, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  323. }
  324. }
  325. delete[] pvars;
  326. }
  327. VOID Fire_ReplayChapter(VARIANT_BOOL bEnabled)
  328. {
  329. T* pT = static_cast<T*>(this);
  330. int nConnectionIndex;
  331. CComVariant* pvars = new CComVariant[1];
  332. int nConnections = m_vec.GetSize();
  333. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  334. {
  335. pT->Lock();
  336. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  337. pT->Unlock();
  338. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  339. if (pDispatch != NULL)
  340. {
  341. pvars[0] = bEnabled;
  342. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  343. pDispatch->Invoke(eventidReplayChapter, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  344. }
  345. }
  346. delete[] pvars;
  347. }
  348. VOID Fire_PlayNextChapter(VARIANT_BOOL bEnabled)
  349. {
  350. T* pT = static_cast<T*>(this);
  351. int nConnectionIndex;
  352. CComVariant* pvars = new CComVariant[1];
  353. int nConnections = m_vec.GetSize();
  354. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  355. {
  356. pT->Lock();
  357. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  358. pT->Unlock();
  359. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  360. if (pDispatch != NULL)
  361. {
  362. pvars[0] = bEnabled;
  363. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  364. pDispatch->Invoke(eventidPlayNextChapter, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  365. }
  366. }
  367. delete[] pvars;
  368. }
  369. VOID Fire_Stop(VARIANT_BOOL bEnabled)
  370. {
  371. T* pT = static_cast<T*>(this);
  372. int nConnectionIndex;
  373. CComVariant* pvars = new CComVariant[1];
  374. int nConnections = m_vec.GetSize();
  375. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  376. {
  377. pT->Lock();
  378. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  379. pT->Unlock();
  380. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  381. if (pDispatch != NULL)
  382. {
  383. pvars[0] = bEnabled;
  384. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  385. pDispatch->Invoke(eventidStop, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  386. }
  387. }
  388. delete[] pvars;
  389. }
  390. VOID Fire_ReturnFromSubmenu(VARIANT_BOOL bEnabled)
  391. {
  392. T* pT = static_cast<T*>(this);
  393. int nConnectionIndex;
  394. CComVariant* pvars = new CComVariant[1];
  395. int nConnections = m_vec.GetSize();
  396. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  397. {
  398. pT->Lock();
  399. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  400. pT->Unlock();
  401. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  402. if (pDispatch != NULL)
  403. {
  404. pvars[0] = bEnabled;
  405. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  406. pDispatch->Invoke(eventidReturnFromSubmenu, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  407. }
  408. }
  409. delete[] pvars;
  410. }
  411. VOID Fire_PlayTitle(VARIANT_BOOL bEnabled)
  412. {
  413. T* pT = static_cast<T*>(this);
  414. int nConnectionIndex;
  415. CComVariant* pvars = new CComVariant[1];
  416. int nConnections = m_vec.GetSize();
  417. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  418. {
  419. pT->Lock();
  420. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  421. pT->Unlock();
  422. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  423. if (pDispatch != NULL)
  424. {
  425. pvars[0] = bEnabled;
  426. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  427. pDispatch->Invoke(eventidPlayTitle, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  428. }
  429. }
  430. delete[] pvars;
  431. }
  432. VOID Fire_PlayPrevChapter(VARIANT_BOOL bEnabled)
  433. {
  434. T* pT = static_cast<T*>(this);
  435. int nConnectionIndex;
  436. CComVariant* pvars = new CComVariant[1];
  437. int nConnections = m_vec.GetSize();
  438. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  439. {
  440. pT->Lock();
  441. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  442. pT->Unlock();
  443. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  444. if (pDispatch != NULL)
  445. {
  446. pvars[0] = bEnabled;
  447. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  448. pDispatch->Invoke(eventidPlayPrevChapter, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  449. }
  450. }
  451. delete[] pvars;
  452. }
  453. };
  454. #endif