mfidl.idl 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. import "mfobjects.idl";
  7. cpp_quote("#include <mftransform.h>") // FIXME: import "mftransform.idl";
  8. cpp_quote("#include <windef.h>")
  9. typedef enum MFSESSION_SETTOPOLOGY_FLAGS {
  10. MFSESSION_SETTOPOLOGY_IMMEDIATE = 0x1,
  11. MFSESSION_SETTOPOLOGY_NORESOLUTION = 0x2,
  12. MFSESSION_SETTOPOLOGY_CLEAR_CURRENT = 0x4
  13. } MFSESSION_SETTOPOLOGY_FLAGS;
  14. typedef enum MFSESSION_GETFULLTOPOLOGY_FLAGS {
  15. MFSESSION_GETFULLTOPOLOGY_CURRENT = 0x1
  16. } MFSESSION_GETFULLTOPOLOGY_FLAGS;
  17. typedef enum MFPMPSESSION_CREATION_FLAGS {
  18. MFPMPSESSION_UNPROTECTED_PROCESS = 0x1,
  19. MFPMPSESSION_IN_PROCESS = 0x2
  20. } MFPMPSESSION_CREATION_FLAGS;
  21. typedef unsigned __int64 TOPOID;
  22. typedef enum MF_TOPOLOGY_TYPE {
  23. MF_TOPOLOGY_OUTPUT_NODE,
  24. MF_TOPOLOGY_SOURCESTREAM_NODE,
  25. MF_TOPOLOGY_TRANSFORM_NODE,
  26. MF_TOPOLOGY_TEE_NODE,
  27. MF_TOPOLOGY_MAX = 0xffffffff
  28. } MF_TOPOLOGY_TYPE;
  29. [
  30. object,
  31. uuid(83cf873a-f6da-4bc8-823f-bacfd55dc430),
  32. ]
  33. interface IMFTopologyNode : IMFAttributes
  34. {
  35. HRESULT SetObject([in] IUnknown *pObject);
  36. HRESULT GetObject([out] IUnknown **ppObject);
  37. HRESULT GetNodeType([out] MF_TOPOLOGY_TYPE *pType);
  38. HRESULT GetTopoNodeID([out] TOPOID *pID);
  39. HRESULT SetTopoNodeID([in] TOPOID ullTopoID);
  40. HRESULT GetInputCount([out] DWORD *pcInputs);
  41. HRESULT GetOutputCount([out] DWORD *pcOutputs);
  42. [local]
  43. HRESULT ConnectOutput([in] DWORD dwOutputIndex, [in] IMFTopologyNode* pDownstreamNode,
  44. [in] DWORD dwInputIndexOnDownstreamNode);
  45. [local] HRESULT DisconnectOutput([in] DWORD dwOutputIndex);
  46. HRESULT GetInput([in] DWORD dwInputIndex, [out] IMFTopologyNode** ppUpstreamNode,
  47. [out] DWORD *pdwOutputIndexOnUpstreamNode);
  48. HRESULT GetOutput([in] DWORD dwOutputIndex, [out] IMFTopologyNode** ppDownstreamNode,
  49. [out] DWORD* pdwInputIndexOnDownstreamNode);
  50. [local] HRESULT SetOutputPrefType([in] DWORD dwOutputIndex, [in] IMFMediaType *pType);
  51. [local] HRESULT GetOutputPrefType([in] DWORD dwOutputIndex, [out] IMFMediaType **ppType);
  52. [call_as(GetOutputPrefType)] HRESULT RemoteGetOutputPrefType([in] DWORD dwOutputIndex,
  53. [out] DWORD *pcbData, [out, size_is(,*pcbData)] BYTE **ppbData);
  54. [local] HRESULT SetInputPrefType([in] DWORD dwInputIndex, [in] IMFMediaType *pType);
  55. [local] HRESULT GetInputPrefType([in] DWORD dwInputIndex, [out] IMFMediaType **ppType);
  56. [call_as(GetInputPrefType)] HRESULT RemoteGetInputPrefType( [in] DWORD dwInputIndex,
  57. [out] DWORD *pcbData, [out, size_is(,*pcbData)] BYTE **ppbData);
  58. HRESULT CloneFrom([in] IMFTopologyNode *pNode);
  59. }
  60. [
  61. object,
  62. uuid(83cf873a-f6da-4bc8-823f-bacfd55dc433),
  63. ]
  64. interface IMFTopology : IMFAttributes
  65. {
  66. HRESULT GetTopologyID([out] TOPOID *pID);
  67. [local] HRESULT AddNode([in] IMFTopologyNode *pNode);
  68. [local] HRESULT RemoveNode([in] IMFTopologyNode *pNode);
  69. HRESULT GetNodeCount([out] WORD *pwNodes);
  70. HRESULT GetNode([in] WORD wIndex, [out] IMFTopologyNode **ppNode);
  71. [local] HRESULT Clear();
  72. HRESULT CloneFrom([in] IMFTopology *pTopology);
  73. HRESULT GetNodeByID([in] TOPOID qwTopoNodeID, [out] IMFTopologyNode **ppNode);
  74. HRESULT GetSourceNodeCollection([out] IMFCollection **ppCollection);
  75. HRESULT GetOutputNodeCollection([out] IMFCollection **ppCollection);
  76. }
  77. [
  78. object,
  79. uuid(fa993888-4383-415a-a930-dd472a8cf6f7)
  80. ]
  81. interface IMFGetService : IUnknown
  82. {
  83. HRESULT GetService([in] REFGUID guidService, [in] REFIID riid, [out, iid_is(riid)] LPVOID *ppvObject);
  84. }
  85. typedef LONGLONG MFTIME;
  86. typedef enum _MF_CLOCK_STATE {
  87. MFCLOCK_STATE_INVALID,
  88. MFCLOCK_STATE_RUNNING,
  89. MFCLOCK_STATE_STOPPED,
  90. MFCLOCK_STATE_PAUSED
  91. } MF_CLOCK_STATE, MFCLOCK_STATE;
  92. typedef struct _MFCLOCK_PROPERTIES {
  93. unsigned __int64 qwCorrelationRate;
  94. GUID guidClockId;
  95. DWORD dwClockFlags;
  96. unsigned __int64 qwClockFrequency;
  97. DWORD dwClockTolerance;
  98. DWORD dwClockJitter;
  99. } MFCLOCK_PROPERTIES;
  100. [
  101. object,
  102. uuid(2eb1e945-18b8-4139-9b1a-d5d584818530),
  103. ]
  104. interface IMFClock : IUnknown
  105. {
  106. HRESULT GetClockCharacteristics([out] DWORD *pdwCharacteristics);
  107. HRESULT GetCorrelatedTime([in] DWORD dwReserved, [out] LONGLONG *pllClockTime, [out] MFTIME *phnsSystemTime);
  108. HRESULT GetContinuityKey([out] DWORD *pdwContinuityKey);
  109. HRESULT GetState([in] DWORD dwReserved, [out] MFCLOCK_STATE *peClockState);
  110. HRESULT GetProperties([out] MFCLOCK_PROPERTIES *pClockProperties);
  111. }
  112. cpp_quote("#define SHA_HASH_LEN 20")
  113. cpp_quote("#define STR_HASH_LEN (SHA_HASH_LEN*2+3)")
  114. cpp_quote("typedef struct _MFRR_COMPONENT_HASH_INFO {")
  115. cpp_quote(" DWORD ulReason;")
  116. cpp_quote(" WCHAR rgHeaderHash[STR_HASH_LEN];")
  117. cpp_quote(" WCHAR rgPublicKeyHash[STR_HASH_LEN];")
  118. cpp_quote(" WCHAR wszName[MAX_PATH];")
  119. cpp_quote("} MFRR_COMPONENT_HASH_INFO, *PMFRR_COMPONENT_HASH_INFO;")
  120. cpp_quote("EXTERN_GUID(MF_PD_DURATION, 0x6c990d33,0xbb8e,0x477a,0x85,0x98,0xd,0x5d,0x96,0xfc,0xd8,0x8a);")
  121. typedef enum _MF_CONNECT_METHOD {
  122. MF_CONNECT_DIRECT = 0x00000000,
  123. MF_CONNECT_ALLOW_CONVERTER = 0x00000001,
  124. MF_CONNECT_ALLOW_DECODER = 0x00000003,
  125. MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES = 0x00000004,
  126. MF_CONNECT_AS_OPTIONAL = 0x00010000,
  127. MF_CONNECT_AS_OPTIONAL_BRANCH = 0x00020000
  128. } MF_CONNECT_METHOD;
  129. [
  130. object,
  131. uuid(90377834-21d0-4dee-8214-ba2e3e6c1127),
  132. ]
  133. interface IMFMediaSession : IMFMediaEventGenerator
  134. {
  135. HRESULT SetTopology([in] DWORD dwSetTopologyFlags, [in] IMFTopology *pTopology);
  136. HRESULT ClearTopologies();
  137. HRESULT Start([in, unique] const GUID *pguidTimeFormat, [in, unique] const PROPVARIANT *pvarStartPosition);
  138. HRESULT Pause();
  139. HRESULT Stop();
  140. HRESULT Close();
  141. HRESULT Shutdown();
  142. HRESULT GetClock([out] IMFClock **ppClock);
  143. HRESULT GetSessionCapabilities([out] DWORD *pdwCaps);
  144. HRESULT GetFullTopology([in] DWORD dwGetFullTopologyFlags, [in] TOPOID TopoId, [out] IMFTopology **ppFullTopology);
  145. }
  146. [
  147. object,
  148. uuid(e93dcf6c-4b07-4e1e-8123-aa16ed6eadf5),
  149. ]
  150. interface IMFMediaTypeHandler : IUnknown
  151. {
  152. [local] HRESULT IsMediaTypeSupported([in] IMFMediaType *pMediaType, [out] IMFMediaType **ppMediaType);
  153. [local] HRESULT GetMediaTypeCount([out] DWORD *pdwTypeCount);
  154. [local] HRESULT GetMediaTypeByIndex([in] DWORD dwIndex, [out] IMFMediaType **ppType);
  155. [local] HRESULT SetCurrentMediaType([in] IMFMediaType *pMediaType);
  156. [local]
  157. HRESULT GetCurrentMediaType([out] IMFMediaType **ppMediaType);
  158. [call_as(GetCurrentMediaType)]
  159. HRESULT RemoteGetCurrentMediaType([out, size_is(,*pcbData)] BYTE **ppbData, [out] DWORD *pcbData);
  160. HRESULT GetMajorType([out] GUID *pguidMajorType);
  161. }
  162. [
  163. object,
  164. uuid(56c03d9c-9dbb-45f5-ab4b-d80f47c05938),
  165. ]
  166. interface IMFStreamDescriptor : IMFAttributes
  167. {
  168. HRESULT GetStreamIdentifier([out] DWORD *pdwStreamIdentifier);
  169. HRESULT GetMediaTypeHandler([out] IMFMediaTypeHandler **ppMediaTypeHandler);
  170. }
  171. [
  172. object,
  173. uuid(03cb2711-24d7-4db6-a17f-f3a7a479a536),
  174. ]
  175. interface IMFPresentationDescriptor : IMFAttributes
  176. {
  177. HRESULT GetStreamDescriptorCount([out] DWORD *pdwDescriptorCount);
  178. HRESULT GetStreamDescriptorByIndex([in] DWORD dwIndex, [out] BOOL *pfSelected, [out] IMFStreamDescriptor **ppDescriptor);
  179. HRESULT SelectStream([in] DWORD dwDescriptorIndex);
  180. HRESULT DeselectStream([in] DWORD dwDescriptorIndex);
  181. HRESULT Clone([out] IMFPresentationDescriptor **ppPresentationDescriptor);
  182. }
  183. [
  184. object,
  185. uuid(279a808d-aec7-40c8-9c6b-a6b492c78a66),
  186. ]
  187. interface IMFMediaSource : IMFMediaEventGenerator
  188. {
  189. HRESULT GetCharacteristics([out] DWORD *pdwCharacteristics);
  190. [local]
  191. HRESULT CreatePresentationDescriptor([out] IMFPresentationDescriptor **ppPresentationDescriptor);
  192. [call_as(CreatePresentationDescriptor)]
  193. HRESULT RemoteCreatePresentationDescriptor(
  194. [out] DWORD *pcbPD,
  195. [out, size_is(,*pcbPD)] BYTE **pbPD,
  196. [out] IMFPresentationDescriptor **ppRemotePD);
  197. HRESULT Start(
  198. [in] IMFPresentationDescriptor *pPresentationDescriptor,
  199. [in, unique] const GUID *pguidTimeFormat,
  200. [in, unique] const PROPVARIANT *pvarStartPosition);
  201. HRESULT Stop();
  202. HRESULT Pause();
  203. HRESULT Shutdown();
  204. }
  205. cpp_quote("#if (WINVER >= _WIN32_WINNT_WIN8)")
  206. [object, uuid(3c9b2eb9-86d5-4514-a394-f56664f9f0d8)]
  207. interface IMFMediaSourceEx : IMFMediaSource
  208. {
  209. HRESULT GetSourceAttributes([out] IMFAttributes **ppAttributes);
  210. HRESULT GetStreamAttributes([in] DWORD dwStreamIdentifier, [out] IMFAttributes **ppAttributes);
  211. HRESULT SetD3DManager([in] IUnknown *pManager);
  212. }
  213. cpp_quote("EXTERN_GUID(MF_SOURCE_STREAM_SUPPORTS_HW_CONNECTION, 0xa38253aa, 0x6314, 0x42fd, 0xa3, 0xce, 0xbb, 0x27, 0xb6, 0x85, 0x99, 0x46);")
  214. cpp_quote("#endif /* (WINVER >= _WIN32_WINNT_WIN8) */")
  215. typedef [public] struct _MF_LEAKY_BUCKET_PAIR {
  216. DWORD dwBitrate;
  217. DWORD msBufferWindow;
  218. } MF_LEAKY_BUCKET_PAIR;
  219. typedef [public] struct _MFBYTESTREAM_BUFFERING_PARAMS {
  220. QWORD cbTotalFileSize;
  221. QWORD cbPlayableDataSize;
  222. MF_LEAKY_BUCKET_PAIR *prgBuckets;
  223. DWORD cBuckets;
  224. QWORD qwNetBufferingTime;
  225. QWORD qwExtraBufferingTimeDuringSeek;
  226. QWORD qwPlayDuration;
  227. float dRate;
  228. } MFBYTESTREAM_BUFFERING_PARAMS;
  229. [
  230. object,
  231. uuid(6d66d782-1d4f-4db7-8c63-cb8c77f1ef5e),
  232. local
  233. ]
  234. interface IMFByteStreamBuffering : IUnknown
  235. {
  236. HRESULT SetBufferingParams([in] MFBYTESTREAM_BUFFERING_PARAMS *pParams);
  237. HRESULT EnableBuffering([in] BOOL fEnable);
  238. HRESULT StopBuffering();
  239. }
  240. [
  241. object,
  242. uuid(F6696E82-74F7-4f3d-A178-8A5E09C3659F),
  243. ]
  244. interface IMFClockStateSink : IUnknown
  245. {
  246. HRESULT OnClockStart([in] MFTIME hnsSystemTime,[in] LONGLONG llClockStartOffset);
  247. HRESULT OnClockStop([in] MFTIME hnsSystemTime);
  248. HRESULT OnClockPause([in] MFTIME hnsSystemTime);
  249. HRESULT OnClockRestart([in] MFTIME hnsSystemTime);
  250. HRESULT OnClockSetRate([in] MFTIME hnsSystemTime, [in] float flRate);
  251. }
  252. cpp_quote("HRESULT WINAPI MFRequireProtectedEnvironment(IMFPresentationDescriptor *pPresentationDescriptor);")
  253. cpp_quote("HRESULT WINAPI MFSerializePresentationDescriptor(IMFPresentationDescriptor *pPD,DWORD *pcbData,BYTE **ppbData);")
  254. typedef DWORD MFSequencerElementId;
  255. typedef enum _MFCLOCK_CHARACTERISTICS_FLAGS
  256. {
  257. MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ = 0x2,
  258. MFCLOCK_CHARACTERISTICS_FLAG_ALWAYS_RUNNING = 0x4,
  259. MFCLOCK_CHARACTERISTICS_FLAG_IS_SYSTEM_CLOCK = 0x8
  260. } MFCLOCK_CHARACTERISTICS_FLAGS;
  261. cpp_quote("#if (WINVER >= 0x0601)")
  262. typedef enum _MF_QUALITY_ADVISE_FLAGS
  263. {
  264. MF_QUALITY_CANNOT_KEEP_UP = 0x1
  265. } MF_QUALITY_ADVISE_FLAGS;
  266. cpp_quote("#endif /*(WINVER >= 0x0601)*/")
  267. typedef enum _MF_QUALITY_DROP_MODE
  268. {
  269. MF_DROP_MODE_NONE = 0x0,
  270. MF_DROP_MODE_1 = 0x1,
  271. MF_DROP_MODE_2 = 0x2,
  272. MF_DROP_MODE_3 = 0x3,
  273. MF_DROP_MODE_4 = 0x4,
  274. MF_DROP_MODE_5 = 0x5,
  275. MF_NUM_DROP_MODES = 0x6
  276. } MF_QUALITY_DROP_MODE;
  277. typedef enum _MF_QUALITY_LEVEL
  278. {
  279. MF_QUALITY_NORMAL = 0x0,
  280. MF_QUALITY_NORMAL_MINUS_1 = 0x1,
  281. MF_QUALITY_NORMAL_MINUS_2 = 0x2,
  282. MF_QUALITY_NORMAL_MINUS_3 = 0x3,
  283. MF_QUALITY_NORMAL_MINUS_4 = 0x4,
  284. MF_QUALITY_NORMAL_MINUS_5 = 0x5,
  285. MF_NUM_QUALITY_LEVELS = 0x6
  286. } MF_QUALITY_LEVEL;
  287. typedef enum _MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS
  288. {
  289. MF_TOPOLOGY_RESOLUTION_SUCCEEDED = 0x00000000,
  290. MF_OPTIONAL_NODE_REJECTED_MEDIA_TYPE = 0x00000001,
  291. MF_OPTIONAL_NODE_REJECTED_PROTECTED_PROCESS = 0x00000002
  292. } MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS;
  293. typedef enum _MF_TOPONODE_DRAIN_MODE
  294. {
  295. MF_TOPONODE_DRAIN_DEFAULT,
  296. MF_TOPONODE_DRAIN_ALWAYS,
  297. MF_TOPONODE_DRAIN_NEVER
  298. } MF_TOPONODE_DRAIN_MODE;
  299. typedef enum _MF_TOPONODE_FLUSH_MODE
  300. {
  301. MF_TOPONODE_FLUSH_ALWAYS,
  302. MF_TOPONODE_FLUSH_SEEK,
  303. MF_TOPONODE_FLUSH_NEVER
  304. } MF_TOPONODE_FLUSH_MODE;
  305. cpp_quote("#if (WINVER >= 0x0601)")
  306. typedef enum _MF_TRANSCODE_TOPOLOGY_MODE_FLAGS
  307. {
  308. MF_TRANSCODE_TOPOLOGYMODE_SOFTWARE_ONLY = 0,
  309. MF_TRANSCODE_TOPOLOGYMODE_HARDWARE_ALLOWED = 1
  310. } MF_TRANSCODE_TOPOLOGYMODE_FLAGS;
  311. cpp_quote("#endif")
  312. cpp_quote("EXTERN_GUID(MF_TRANSCODE_CONTAINERTYPE, 0x150ff23f, 0x4abc, 0x478b, 0xac, 0x4f, 0xe1, 0x91, 0x6f, 0xba, 0x1c, 0xca);")
  313. cpp_quote("EXTERN_GUID(MFTranscodeContainerType_ASF, 0x430f6f6e, 0xb6bf, 0x4fc1, 0xa0, 0xbd, 0x9e, 0xe4, 0x6e, 0xee, 0x2a, 0xfb);")
  314. cpp_quote("EXTERN_GUID(MFTranscodeContainerType_MPEG4, 0xdc6cd05d, 0xb9d0, 0x40ef, 0xbd, 0x35, 0xfa, 0x62, 0x2c, 0x1a, 0xb2, 0x8a);")
  315. cpp_quote("EXTERN_GUID(MFTranscodeContainerType_MP3, 0xe438b912, 0x83f1, 0x4de6, 0x9e, 0x3a, 0x9f, 0xfb, 0xc6, 0xdd, 0x24, 0xd1);")
  316. cpp_quote("EXTERN_GUID(MFTranscodeContainerType_FLAC, 0x31344aa3, 0x05a9, 0x42b5, 0x90, 0x1b, 0x8e, 0x9d, 0x42, 0x57, 0xf7, 0x5e);")
  317. cpp_quote("EXTERN_GUID(MFTranscodeContainerType_3GP, 0x34c50167, 0x4472, 0x4f34, 0x9e, 0xa0, 0xc4, 0x9f, 0xba, 0xcf, 0x03, 0x7d);")
  318. cpp_quote("EXTERN_GUID(MFTranscodeContainerType_AC3, 0x6d8d91c3, 0x8c91, 0x4ed1, 0x87, 0x42, 0x8c, 0x34, 0x7d, 0x5b, 0x44, 0xd0);")
  319. cpp_quote("EXTERN_GUID(MFTranscodeContainerType_ADTS, 0x132fd27d, 0x0f02, 0x43de, 0xa3, 0x01, 0x38, 0xfb, 0xbb, 0xb3, 0x83, 0x4e);")
  320. cpp_quote("EXTERN_GUID(MFTranscodeContainerType_MPEG2, 0xbfc2dbf9, 0x7bb4, 0x4f8f, 0xaf, 0xde, 0xe1, 0x12, 0xc4, 0x4b, 0xa8, 0x82);")
  321. cpp_quote("EXTERN_GUID(MFTranscodeContainerType_WAVE, 0x64c3453c, 0x0f26, 0x4741, 0xbe, 0x63, 0x87, 0xbd, 0xf8, 0xbb, 0x93, 0x5b);")
  322. cpp_quote("EXTERN_GUID(MFTranscodeContainerType_AVI, 0x7edfe8af, 0x402f, 0x4d76, 0xa3, 0x3c, 0x61, 0x9f, 0xd1, 0x57, 0xd0, 0xf1);")
  323. cpp_quote("#if (WINVER >= _WIN32_WINNT_WIN8)")
  324. cpp_quote("EXTERN_GUID(MFTranscodeContainerType_FMPEG4, 0x9ba876f1, 0x419f, 0x4b77, 0xa1, 0xe0, 0x35, 0x95, 0x9d, 0x9d, 0x40, 0x4);")
  325. cpp_quote("#endif /* (WINVER >= _WIN32_WINNT_WIN8) */")
  326. cpp_quote("EXTERN_GUID(MFTranscodeContainerType_AMR, 0x25d5ad3, 0x621a, 0x475b, 0x96, 0x4d, 0x66, 0xb1, 0xc8, 0x24, 0xf0, 0x79);")
  327. typedef enum
  328. {
  329. MF_LICENSE_URL_UNTRUSTED,
  330. MF_LICENSE_URL_TRUSTED,
  331. MF_LICENSE_URL_TAMPERED
  332. } MF_URL_TRUST_STATUS;
  333. typedef enum _MFCLOCK_RELATIONAL_FLAGS
  334. {
  335. MFCLOCK_RELATIONAL_FLAG_JITTER_NEVER_AHEAD = 0x1
  336. } MFCLOCK_RELATIONAL_FLAGS;
  337. typedef enum _MFMEDIASOURCE_CHARACTERISTICS
  338. {
  339. MFMEDIASOURCE_IS_LIVE = 0x1,
  340. MFMEDIASOURCE_CAN_SEEK = 0x2,
  341. MFMEDIASOURCE_CAN_PAUSE = 0x4,
  342. MFMEDIASOURCE_HAS_SLOW_SEEK = 0x8,
  343. MFMEDIASOURCE_HAS_MULTIPLE_PRESENTATIONS = 0x10,
  344. MFMEDIASOURCE_CAN_SKIPFORWARD = 0x20,
  345. MFMEDIASOURCE_CAN_SKIPBACKWARD = 0x40
  346. } MFMEDIASOURCE_CHARACTERISTICS;
  347. typedef enum _MFNET_PROXYSETTINGS
  348. {
  349. MFNET_PROXYSETTING_NONE = 0,
  350. MFNET_PROXYSETTING_MANUAL = 1,
  351. MFNET_PROXYSETTING_AUTO = 2,
  352. MFNET_PROXYSETTING_BROWSER = 3
  353. } MFNET_PROXYSETTINGS;
  354. typedef enum _MFNetAuthenticationFlags
  355. {
  356. MFNET_AUTHENTICATION_PROXY = 0x00000001,
  357. MFNET_AUTHENTICATION_CLEAR_TEXT = 0x00000002,
  358. MFNET_AUTHENTICATION_LOGGED_ON_USER = 0x00000004
  359. } MFNetAuthenticationFlags;
  360. typedef enum _MFNetCredentialOptions
  361. {
  362. MFNET_CREDENTIAL_SAVE = 0x00000001,
  363. MFNET_CREDENTIAL_DONT_CACHE = 0x00000002,
  364. MFNET_CREDENTIAL_ALLOW_CLEAR_TEXT = 0x00000004
  365. } MFNetCredentialOptions;
  366. typedef enum _MFNetCredentialRequirements {
  367. REQUIRE_PROMPT = 0x00000001,
  368. REQUIRE_SAVE_SELECTED = 0x00000002
  369. } MFNetCredentialRequirements;
  370. typedef enum _MFNETSOURCE_CACHE_STATE
  371. {
  372. MFNETSOURCE_CACHE_UNAVAILABLE,
  373. MFNETSOURCE_CACHE_ACTIVE_WRITING,
  374. MFNETSOURCE_CACHE_ACTIVE_COMPLETE
  375. } MFNETSOURCE_CACHE_STATE;
  376. typedef enum _MFNETSOURCE_PROTOCOL_TYPE
  377. {
  378. MFNETSOURCE_UNDEFINED = 0x0,
  379. MFNETSOURCE_HTTP = 0x1,
  380. MFNETSOURCE_RTSP = 0x2,
  381. MFNETSOURCE_FILE = 0x3,
  382. MFNETSOURCE_MULTICAST = 0x4
  383. } MFNETSOURCE_PROTOCOL_TYPE;
  384. typedef enum _MFNETSOURCE_STATISTICS_IDS
  385. {
  386. MFNETSOURCE_RECVPACKETS_ID = 0,
  387. MFNETSOURCE_LOSTPACKETS_ID,
  388. MFNETSOURCE_RESENDSREQUESTED_ID,
  389. MFNETSOURCE_RESENDSRECEIVED_ID,
  390. MFNETSOURCE_RECOVEREDBYECCPACKETS_ID,
  391. MFNETSOURCE_RECOVEREDBYRTXPACKETS_ID,
  392. MFNETSOURCE_OUTPACKETS_ID,
  393. MFNETSOURCE_RECVRATE_ID,
  394. MFNETSOURCE_AVGBANDWIDTHBPS_ID,
  395. MFNETSOURCE_BYTESRECEIVED_ID,
  396. MFNETSOURCE_PROTOCOL_ID,
  397. MFNETSOURCE_TRANSPORT_ID,
  398. MFNETSOURCE_CACHE_STATE_ID,
  399. MFNETSOURCE_LINKBANDWIDTH_ID,
  400. MFNETSOURCE_CONTENTBITRATE_ID,
  401. MFNETSOURCE_SPEEDFACTOR_ID,
  402. MFNETSOURCE_BUFFERSIZE_ID,
  403. MFNETSOURCE_BUFFERPROGRESS_ID,
  404. MFNETSOURCE_LASTBWSWITCHTS_ID,
  405. MFNETSOURCE_SEEKRANGESTART_ID,
  406. MFNETSOURCE_SEEKRANGEEND_ID,
  407. MFNETSOURCE_BUFFERINGCOUNT_ID,
  408. MFNETSOURCE_INCORRECTLYSIGNEDPACKETS_ID,
  409. MFNETSOURCE_SIGNEDSESSION_ID,
  410. MFNETSOURCE_MAXBITRATE_ID,
  411. MFNETSOURCE_RECEPTION_QUALITY_ID,
  412. MFNETSOURCE_RECOVEREDPACKETS_ID,
  413. MFNETSOURCE_VBR_ID,
  414. MFNETSOURCE_DOWNLOADPROGRESS_ID
  415. } MFNETSOURCE_STATISTICS_IDS;
  416. typedef enum _MFNETSOURCE_TRANSPORT_TYPE
  417. {
  418. MFNETSOURCE_UDP,
  419. MFNETSOURCE_TCP
  420. } MFNETSOURCE_TRANSPORT_TYPE;
  421. typedef enum MF_OBJECT_TYPE
  422. {
  423. MF_OBJECT_MEDIASOURCE,
  424. MF_OBJECT_BYTESTREAM,
  425. MF_OBJECT_INVALID
  426. } MF_OBJECT_TYPE;
  427. typedef enum _MFPOLICYMANAGER_ACTION
  428. {
  429. PEACTION_NO = 0,
  430. PEACTION_PLAY = 1,
  431. PEACTION_COPY = 2,
  432. PEACTION_EXPORT = 3,
  433. PEACTION_EXTRACT = 4,
  434. PEACTION_RESERVED1 = 5,
  435. PEACTION_RESERVED2 = 6,
  436. PEACTION_RESERVED3 = 7,
  437. PEACTION_LAST = 7
  438. } MFPOLICYMANAGER_ACTION;
  439. typedef enum _MFRATE_DIRECTION
  440. {
  441. MFRATE_FORWARD,
  442. MFRATE_REVERSE
  443. } MFRATE_DIRECTION;
  444. typedef enum _MFSequencerTopologyFlags
  445. {
  446. SequencerTopologyFlags_Last = 0x00000001
  447. } MFSequencerTopologyFlags;
  448. typedef enum _MFSHUTDOWN_STATUS
  449. {
  450. MFSHUTDOWN_INITIATED,
  451. MFSHUTDOWN_COMPLETED
  452. } MFSHUTDOWN_STATUS;
  453. typedef enum MFSTREAMSINK_MARKER_TYPE
  454. {
  455. MFSTREAMSINK_MARKER_DEFAULT,
  456. MFSTREAMSINK_MARKER_ENDOFSEGMENT,
  457. MFSTREAMSINK_MARKER_TICK,
  458. MFSTREAMSINK_MARKER_EVENT
  459. } MFSTREAMSINK_MARKER_TYPE;
  460. typedef enum MFTIMER_FLAGS
  461. {
  462. MFTIMER_RELATIVE = 0x00000001
  463. } MFTIMER_FLAGS;
  464. cpp_quote("#if (WINVER >= 0x0601)")
  465. typedef enum MFTOPOLOGY_DXVA_MODE
  466. {
  467. MFTOPOLOGY_DXVA_DEFAULT = 0,
  468. MFTOPOLOGY_DXVA_NONE = 1,
  469. MFTOPOLOGY_DXVA_FULL = 2
  470. } MFTOPOLOGY_DXVA_MODE;
  471. typedef enum MFTOPOLOGY_HARDWARE_MODE
  472. {
  473. MFTOPOLOGY_HWMODE_SOFTWARE_ONLY = 0,
  474. MFTOPOLOGY_HWMODE_USE_HARDWARE = 1
  475. } MFTOPOLOGY_HARDWARE_MODE;
  476. typedef struct _MFT_REGISTRATION_INFO
  477. {
  478. CLSID clsid;
  479. GUID guidCategory;
  480. UINT32 uiFlags;
  481. LPCWSTR pszName;
  482. DWORD cInTypes;
  483. [size_is(cInTypes)] MFT_REGISTER_TYPE_INFO *pInTypes;
  484. DWORD cOutTypes;
  485. [size_is(cOutTypes)] MFT_REGISTER_TYPE_INFO *pOutTypes;
  486. } MFT_REGISTRATION_INFO;
  487. cpp_quote("#endif /*(WINVER >= 0x0601)*/")
  488. cpp_quote("typedef struct _ASFFlatPicture {")
  489. cpp_quote(" BYTE bPictureType;")
  490. cpp_quote(" DWORD dwDataLen;")
  491. cpp_quote("} ASF_FLAT_PICTURE;")
  492. cpp_quote("")
  493. cpp_quote("typedef struct _ASFFlatSynchronisedLyrics {")
  494. cpp_quote(" BYTE bTimeStampFormat;")
  495. cpp_quote(" BYTE bContentType;")
  496. cpp_quote(" DWORD dwLyricsLen;")
  497. cpp_quote("} ASF_FLAT_SYNCHRONISED_LYRICS;")
  498. typedef enum SAMPLE_PROTECTION_VERSION
  499. {
  500. SAMPLE_PROTECTION_VERSION_NO = 0,
  501. SAMPLE_PROTECTION_VERSION_BASIC_LOKI = 1,
  502. SAMPLE_PROTECTION_VERSION_SCATTER = 2,
  503. SAMPLE_PROTECTION_VERSION_RC4 = 3
  504. } SAMPLE_PROTECTION_VERSION;
  505. typedef struct _MFINPUTTRUSTAUTHORITY_ACTION
  506. {
  507. MFPOLICYMANAGER_ACTION Action;
  508. BYTE *pbTicket;
  509. DWORD cbTicket;
  510. } MFINPUTTRUSTAUTHORITY_ACCESS_ACTION;
  511. typedef struct _MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS
  512. {
  513. DWORD dwSize;
  514. DWORD dwVer;
  515. DWORD cbSignatureOffset;
  516. DWORD cbSignatureSize;
  517. DWORD cbExtensionOffset;
  518. DWORD cbExtensionSize;
  519. DWORD cActions;
  520. MFINPUTTRUSTAUTHORITY_ACCESS_ACTION rgOutputActions[1];
  521. } MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS;
  522. typedef struct _MFNetCredentialManagerGetParam
  523. {
  524. HRESULT hrOp;
  525. WINBOOL fAllowLoggedOnUser;
  526. WINBOOL fClearTextPackage;
  527. LPCWSTR pszUrl;
  528. LPCWSTR pszSite;
  529. LPCWSTR pszRealm;
  530. LPCWSTR pszPackage;
  531. LONG nRetries;
  532. } MFNetCredentialManagerGetParam;
  533. cpp_quote("#define MEDIASINK_FIXED_STREAMS 0x00000001")
  534. cpp_quote("#define MEDIASINK_CANNOT_MATCH_CLOCK 0x00000002")
  535. cpp_quote("#define MEDIASINK_RATELESS 0x00000004")
  536. cpp_quote("#define MEDIASINK_CLOCK_REQUIRED 0x00000008")
  537. cpp_quote("#define MEDIASINK_CAN_PREROLL 0x00000010")
  538. cpp_quote("#define MEDIASINK_REQUIRE_REFERENCE_MEDIATYPE 0x00000020")
  539. enum
  540. {
  541. MF_RESOLUTION_MEDIASOURCE = 0x00000001,
  542. MF_RESOLUTION_BYTESTREAM = 0x00000002,
  543. MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE = 0x00000010,
  544. MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL = 0x00000020,
  545. MF_RESOLUTION_READ = 0x00010000,
  546. MF_RESOLUTION_WRITE = 0x00020000
  547. };
  548. /* Forward declaration goes here.
  549. * Just for ease, declare interfaces alphabatically.
  550. */
  551. interface IMFASFContentInfo;
  552. interface IMFASFIndexer;
  553. interface IMFASFMultiplexer;
  554. interface IMFASFProfile;
  555. interface IMFASFSplitter;
  556. interface IMFPMPServer;
  557. interface IMFPresentationClock;
  558. interface IMFNetProxyLocator;
  559. interface IMFRemoteDesktopPlugin;
  560. interface IMFTransform;
  561. interface IMFSequencerSource;
  562. interface IMFStreamSink;
  563. interface IMFQualityManager;
  564. interface IMFTranscodeProfile;
  565. [object, uuid(76b1bbdb-4ec8-4f36-b106-70a9316df593)]
  566. interface IMFAudioStreamVolume : IUnknown
  567. {
  568. HRESULT GetChannelCount([out] UINT32 *pdwCount);
  569. HRESULT SetChannelVolume([in] UINT32 dwIndex, [in] const float fLevel);
  570. HRESULT GetChannelVolume([in] UINT32 dwIndex, [out] float *pfLevel);
  571. HRESULT SetAllVolumes([in] UINT32 dwCount, [in, size_is(dwCount)] const float *pfVolumes);
  572. HRESULT GetAllVolumes([in] UINT32 dwCount, [out, size_is(dwCount)] float *pfVolumes);
  573. }
  574. [object, uuid(6ef2a660-47c0-4666-b13d-cbb717f2fa2c)]
  575. interface IMFMediaSink : IUnknown
  576. {
  577. HRESULT GetCharacteristics([out] DWORD *pdwCharacteristics);
  578. HRESULT AddStreamSink([in] DWORD dwStreamSinkIdentifier, [in] IMFMediaType *pMediaType, [out] IMFStreamSink **ppStreamSink);
  579. HRESULT RemoveStreamSink([in] DWORD dwStreamSinkIdentifier);
  580. HRESULT GetStreamSinkCount([out] DWORD *pcStreamSinkCount);
  581. HRESULT GetStreamSinkByIndex([in] DWORD dwIndex, [out] IMFStreamSink **ppStreamSink);
  582. HRESULT GetStreamSinkById([in] DWORD dwStreamSinkIdentifier, [out] IMFStreamSink **ppStreamSink);
  583. HRESULT SetPresentationClock([in] IMFPresentationClock *pPresentationClock);
  584. HRESULT GetPresentationClock([out] IMFPresentationClock **ppPresentationClock);
  585. HRESULT Shutdown(void);
  586. }
  587. [object, uuid(eaecb74a-9a50-42ce-9541-6a7f57aa4ad7), local]
  588. interface IMFFinalizableMediaSink : IMFMediaSink
  589. {
  590. HRESULT BeginFinalize([in] IMFAsyncCallback *pCallback, [in] IUnknown *punkState);
  591. HRESULT EndFinalize([in] IMFAsyncResult *pResult);
  592. }
  593. [object, uuid(5dfd4b2a-7674-4110-a4e6-8a68fd5f3688)]
  594. interface IMFMediaSinkPreroll : IUnknown
  595. {
  596. HRESULT NotifyPreroll([in] MFTIME hnsUpcomingStartTime);
  597. }
  598. [object, uuid(d182108f-4ec6-443f-aa42-a71106ec825f)]
  599. interface IMFMediaStream : IMFMediaEventGenerator
  600. {
  601. HRESULT GetMediaSource([out] IMFMediaSource**ppMediaSource);
  602. HRESULT GetStreamDescriptor([out] IMFStreamDescriptor **ppStreamDescriptor);
  603. [local]
  604. HRESULT RequestSample([in] IUnknown *pToken);
  605. [call_as(RequestSample)]
  606. HRESULT RemoteRequestSample(void);
  607. }
  608. [object, uuid(f88cfb8c-ef16-4991-b450-cb8c69e51704)]
  609. interface IMFMetadata : IUnknown
  610. {
  611. HRESULT SetLanguage([in] LPCWSTR pwszRFC1766);
  612. HRESULT GetLanguage([out] LPWSTR *ppwszRFC1766);
  613. HRESULT GetAllLanguages([out] PROPVARIANT *ppvLanguages);
  614. HRESULT SetProperty([in] LPCWSTR pwszName, [in] const PROPVARIANT *ppvValue);
  615. HRESULT GetProperty([in] LPCWSTR pwszName, [out] PROPVARIANT *ppvValue);
  616. HRESULT DeleteProperty([in] LPCWSTR pwszName);
  617. HRESULT GetAllPropertyNames([out] PROPVARIANT *ppvNames);
  618. }
  619. [object, uuid(56181d2d-e221-4adb-b1c8-3cee6a53f76f)]
  620. interface IMFMetadataProvider : IUnknown
  621. {
  622. HRESULT GetMFMetadata([in] IMFPresentationDescriptor *pPresentationDescriptor, [in] DWORD dwStreamIdentifier, [in] DWORD dwFlags, [out] IMFMetadata **ppMFMetadata);
  623. }
  624. [object, uuid(7ff12cce-f76f-41c2-863b-1666c8e5e139)]
  625. interface IMFPresentationTimeSource : IMFClock
  626. {
  627. HRESULT GetUnderlyingClock([out] IMFClock **ppClock);
  628. }
  629. [object, uuid(868ce85c-8ea9-4f55-ab82-b009a910a805)]
  630. interface IMFPresentationClock : IMFClock
  631. {
  632. HRESULT SetTimeSource([in] IMFPresentationTimeSource *pTimeSource);
  633. HRESULT GetTimeSource([out] IMFPresentationTimeSource **ppTimeSource);
  634. HRESULT GetTime([out] MFTIME *phnsClockTime);
  635. HRESULT AddClockStateSink([in] IMFClockStateSink *pStateSink);
  636. HRESULT RemoveClockStateSink([in] IMFClockStateSink* pStateSink);
  637. HRESULT Start([in] LONGLONG llClockStartOffset);
  638. HRESULT Stop(void);
  639. HRESULT Pause(void);
  640. }
  641. [object, uuid(88ddcd21-03c3-4275-91ed-55ee3929328f), pointer_default(unique)]
  642. interface IMFRateControl : IUnknown
  643. {
  644. HRESULT SetRate([in] WINBOOL fThin, [in] float flRate);
  645. HRESULT GetRate([in, out, unique] WINBOOL *pfThin, [in, out, unique] float *pflRate);
  646. }
  647. [object, uuid(0a9ccdbc-d797-4563-9667-94ec5d79292d), pointer_default(unique)]
  648. interface IMFRateSupport : IUnknown
  649. {
  650. HRESULT GetSlowestRate([in] MFRATE_DIRECTION eDirection, [in] WINBOOL fThin, [out] float *pflRate);
  651. HRESULT GetFastestRate([in] MFRATE_DIRECTION eDirection, [in] WINBOOL fThin, [out] float *pflRate);
  652. HRESULT IsRateSupported([in] WINBOOL fThin, [in] float flRate, [in, out, unique] float *pflNearestSupportedRate);
  653. }
  654. [object, uuid(8c7b80bf-ee42-4b59-b1df-55668e1bdca8), local]
  655. interface IMFSampleGrabberSinkCallback : IMFClockStateSink
  656. {
  657. HRESULT OnSetPresentationClock([in] IMFPresentationClock *pPresentationClock);
  658. HRESULT OnProcessSample([in] REFGUID guidMajorMediaType, [in] DWORD dwSampleFlags, [in] LONGLONG llSampleTime, [in] LONGLONG llSampleDuration, [in] const BYTE *pSampleBuffer, [in] DWORD dwSampleSize);
  659. HRESULT OnShutdown(void);
  660. }
  661. [object, uuid(97ec2ea4-0e42-4937-97ac-9d6d328824e1)]
  662. interface IMFShutdown : IUnknown
  663. {
  664. HRESULT Shutdown(void);
  665. HRESULT GetShutdownStatus([out] MFSHUTDOWN_STATUS *pStatus);
  666. };
  667. [object, uuid(089edf13-cf71-4338-8d13-9e569dbdc319)]
  668. interface IMFSimpleAudioVolume : IUnknown
  669. {
  670. HRESULT SetMasterVolume([in] float fLevel);
  671. HRESULT GetMasterVolume([out] float *pfLevel);
  672. HRESULT SetMute([in] const WINBOOL bMute);
  673. HRESULT GetMute([out] WINBOOL *pbMute);
  674. }
  675. [object, uuid(fbe5a32d-a497-4b61-bb85-97b1a848a6e3)]
  676. interface IMFSourceResolver : IUnknown
  677. {
  678. [local]
  679. HRESULT CreateObjectFromURL([in] LPCWSTR pwszURL, [in] DWORD dwFlags, [in] IPropertyStore *pProps, [out] MF_OBJECT_TYPE *pObjectType, [out] IUnknown **ppObject);
  680. [local]
  681. HRESULT CreateObjectFromByteStream([in] IMFByteStream* pByteStream, [in] LPCWSTR pwszURL, [in] DWORD dwFlags, [in] IPropertyStore *pProps, [out] MF_OBJECT_TYPE *pObjectType, [out] IUnknown **ppObject);
  682. [local]
  683. HRESULT BeginCreateObjectFromURL([in] LPCWSTR pwszURL, [in] DWORD dwFlags, [in] IPropertyStore *pProps, [out] IUnknown **ppIUnknownCancelCookie, [in] IMFAsyncCallback *pCallback, [in] IUnknown *punkState);
  684. [call_as(BeginCreateObjectFromURL)]
  685. HRESULT RemoteBeginCreateObjectFromURL([in, string] LPCWSTR pwszURL, [in] DWORD dwFlags, [in] IPropertyStore *pProps, [in] IMFRemoteAsyncCallback *pCallback);
  686. [local]
  687. HRESULT EndCreateObjectFromURL([in] IMFAsyncResult *pResult, [out] MF_OBJECT_TYPE *pObjectType, [out] IUnknown **ppObject);
  688. [call_as(EndCreateObjectFromURL)]
  689. HRESULT RemoteEndCreateObjectFromURL([in] IUnknown *pResult, [out] MF_OBJECT_TYPE *pObjectType, [out] IUnknown **ppObject);
  690. [local]
  691. HRESULT BeginCreateObjectFromByteStream([in] IMFByteStream* pByteStream, [in] LPCWSTR pwszURL, [in] DWORD dwFlags, [in] IPropertyStore *pProps, [out] IUnknown **ppIUnknownCancelCookie, [in] IMFAsyncCallback *pCallback, [in] IUnknown *punkState);
  692. [call_as(BeginCreateObjectFromByteStream)]
  693. HRESULT RemoteBeginCreateObjectFromByteStream([in] IMFByteStream* pByteStream, [in, unique] LPCWSTR pwszURL, [in] DWORD dwFlags, [in, unique] IPropertyStore *pProps, [in] IMFRemoteAsyncCallback *pCallback);
  694. [local]
  695. HRESULT EndCreateObjectFromByteStream([in] IMFAsyncResult *pResult, [out] MF_OBJECT_TYPE *pObjectType, [out] IUnknown **ppObject);
  696. [call_as(EndCreateObjectFromByteStream)]
  697. HRESULT RemoteEndCreateObjectFromByteStream([in] IUnknown *pResult, [out] MF_OBJECT_TYPE *pObjectType, [out] IUnknown **ppObject);
  698. [local]
  699. HRESULT CancelObjectCreation([in] IUnknown *pIUnknownCancelCookie);
  700. }
  701. [object, uuid(0a97b3cf-8e7c-4a3d-8f8c-0c843dc247fb)]
  702. interface IMFStreamSink : IMFMediaEventGenerator
  703. {
  704. HRESULT GetMediaSink([out] IMFMediaSink **ppMediaSink);
  705. HRESULT GetIdentifier([out] DWORD *pdwIdentifier);
  706. HRESULT GetMediaTypeHandler([out] IMFMediaTypeHandler **ppHandler);
  707. HRESULT ProcessSample([in] IMFSample *pSample);
  708. HRESULT PlaceMarker([in] MFSTREAMSINK_MARKER_TYPE eMarkerType, [in] const PROPVARIANT *pvarMarkerValue, [in] const PROPVARIANT *pvarContextValue);
  709. HRESULT Flush(void);
  710. }
  711. [object, uuid(e56e4cbd-8f70-49d8-a0f8-edb3d6ab9bf2), local]
  712. interface IMFTimer : IUnknown
  713. {
  714. HRESULT SetTimer([in] DWORD dwFlags, [in] LONGLONG llClockTime, [in] IMFAsyncCallback *pCallback, [in] IUnknown *punkState, [out] IUnknown **ppunkKey);
  715. HRESULT CancelTimer([in] IUnknown *punkKey);
  716. }
  717. [object, uuid(de9a6157-f660-4643-b56a-df9f7998c7cd), local]
  718. interface IMFTopoLoader : IUnknown
  719. {
  720. HRESULT Load([in] IMFTopology *pInputTopo, [out] IMFTopology **ppOutputTopo, [in] IMFTopology *pCurrentTopo);
  721. }
  722. [object, uuid(86cbc910-e533-4751-8e3b-f19b5b806a03), local]
  723. interface IMFVideoSampleAllocator : IUnknown
  724. {
  725. HRESULT SetDirectXManager([in, unique] IUnknown *pManager);
  726. HRESULT UninitializeSampleAllocator();
  727. HRESULT InitializeSampleAllocator([in] DWORD cRequestedFrames, [in] IMFMediaType *pMediaType);
  728. HRESULT AllocateSample([out] IMFSample **ppSample);
  729. }
  730. cpp_quote("#if WINVER >= _WIN32_WINNT_WIN7")
  731. [object, uuid(a792cdbe-c374-4e89-8335-278e7b9956a4), local]
  732. interface IMFVideoSampleAllocatorNotify : IUnknown
  733. {
  734. HRESULT NotifyRelease();
  735. }
  736. [object, uuid(3978aa1a-6d5b-4b7f-a340-90899189ae34), local]
  737. interface IMFVideoSampleAllocatorNotifyEx : IMFVideoSampleAllocatorNotify
  738. {
  739. HRESULT NotifyPrune(IMFSample *ppSample);
  740. }
  741. [object, uuid(992388b4-3372-4f67-8b6f-c84c071f4751), local]
  742. interface IMFVideoSampleAllocatorCallback : IUnknown
  743. {
  744. HRESULT SetCallback([in, unique] IMFVideoSampleAllocatorNotify *pNotify);
  745. HRESULT GetFreeSampleCount([out] LONG *plSamples);
  746. }
  747. [object, local, uuid(545b3a48-3283-4f62-866f-a62d8f598f9f), pointer_default(unique)]
  748. interface IMFVideoSampleAllocatorEx : IMFVideoSampleAllocator
  749. {
  750. HRESULT InitializeSampleAllocatorEx([in] DWORD cInitialSamples, [in] DWORD cMaximumSamples, [in, optional] IMFAttributes *pAttributes, [in] IMFMediaType *pMediaType);
  751. }
  752. cpp_quote("#endif /* WINVER >= _WIN32_WINNT_WIN7 */")
  753. cpp_quote("#if WINVER >= _WIN32_WINNT_WIN8")
  754. typedef enum _MF_VIDEO_PROCESSOR_ROTATION {
  755. ROTATION_NONE = 0,
  756. ROTATION_NORMAL = 1
  757. } MF_VIDEO_PROCESSOR_ROTATION;
  758. typedef enum _MF_VIDEO_PROCESSOR_MIRROR {
  759. MIRROR_NONE = 0,
  760. MIRROR_HORIZONTAL = 1,
  761. MIRROR_VERTICAL = 2
  762. } MF_VIDEO_PROCESSOR_MIRROR;
  763. [object, local, uuid(a3f675d5-6119-4f7f-a100-1d8b280f0efb), pointer_default(unique)]
  764. interface IMFVideoProcessorControl : IUnknown
  765. {
  766. HRESULT SetBorderColor([in, optional] MFARGB *pBorderColor);
  767. HRESULT SetSourceRectangle([in, optional] RECT *pSrcRect);
  768. HRESULT SetDestinationRectangle([in, optional] RECT *pDstRect);
  769. HRESULT SetMirror([in] MF_VIDEO_PROCESSOR_MIRROR eMirror);
  770. HRESULT SetRotation([in] MF_VIDEO_PROCESSOR_ROTATION eRotation);
  771. HRESULT SetConstrictionSize([in, optional] SIZE *pConstrictionSize);
  772. }
  773. cpp_quote("#if WINVER >= _WIN32_WINNT_WINBLUE")
  774. [object, local, uuid(bde633d3-e1dc-4a7f-a693-bbae399c4a20), pointer_default(unique)]
  775. interface IMFVideoProcessorControl2 : IMFVideoProcessorControl
  776. {
  777. HRESULT SetRotationOverride([in] UINT uiRotation);
  778. HRESULT EnableHardwareEffects([in] WINBOOL fEnabled);
  779. HRESULT GetSupportedHardwareEffects([out, retval] UINT *puiSupport);
  780. }
  781. cpp_quote("#if WINVER >= _WIN32_WINNT_WIN10")
  782. typedef enum _MFVideoSphericalFormat {
  783. MFVideoSphericalFormat_Unsupported = 0,
  784. MFVideoSphericalFormat_Equirectangular = 1,
  785. MFVideoSphericalFormat_CubeMap = 2,
  786. MFVideoSphericalFormat_3DMesh = 3
  787. } MFVideoSphericalFormat;
  788. cpp_quote("#endif /* WINVER >= _WIN32_WINNT_WIN10 */")
  789. cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN10_RS3")
  790. cpp_quote("EXTERN_GUID(MF_XVP_SAMPLE_LOCK_TIMEOUT, 0xaa4ddb29, 0x5134, 0x4363, 0xac, 0x72, 0x83, 0xec, 0x4b, 0xc1, 0x4, 0x26);")
  791. typedef enum MFVideoSphericalProjectionMode {
  792. MFVideoSphericalProjectionMode_Spherical = 0,
  793. MFVideoSphericalProjectionMode_Flat
  794. } MFVideoSphericalProjectionMode;
  795. [object, local, uuid(2424b3f2-eb23-40f1-91aa-74bddeea0883)]
  796. interface IMFVideoProcessorControl3 : IMFVideoProcessorControl2
  797. {
  798. HRESULT GetNaturalOutputType([out] IMFMediaType **ppType);
  799. HRESULT EnableSphericalVideoProcessing([in] WINBOOL fEnable, [in] MFVideoSphericalFormat eFormat, [in] MFVideoSphericalProjectionMode eProjectionMode);
  800. HRESULT SetSphericalVideoProperties([in] float X, [in] float Y, [in] float Z, [in] float W, [in] float fieldOfView);
  801. HRESULT SetOutputDevice([in] IUnknown *pOutputDevice);
  802. }
  803. cpp_quote("#endif /* NTDDI_VERSION >= NTDDI_WIN10_RS3 */")
  804. cpp_quote("#endif /* WINVER >= _WIN32_WINNT_WINBLUE */")
  805. cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN10_VB")
  806. [object, local, uuid(604d33d7-cf23-41d5-8224-5bbbb1a87475)]
  807. interface IMFVideoRendererEffectControl : IUnknown
  808. {
  809. HRESULT OnAppServiceConnectionEstablished([in] IUnknown *pAppServiceConnection);
  810. }
  811. cpp_quote("#endif /* WINVER >= NTDDI_WIN10_VB */")
  812. cpp_quote("#endif /* WINVER >= _WIN32_WINNT_WIN8 */")
  813. cpp_quote("HRESULT WINAPI MFCreate3GPMediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink);")
  814. cpp_quote("HRESULT WINAPI MFCreateAggregateSource(IMFCollection *pSourceCollection,IMFMediaSource **ppAggSource);")
  815. cpp_quote("")
  816. cpp_quote("HRESULT WINAPI MFCreateAlignedMemoryBuffer(DWORD cbMaxLength,DWORD fAlignmentFlags,IMFMediaBuffer **ppBuffer);")
  817. cpp_quote("HRESULT WINAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo);")
  818. cpp_quote("HRESULT WINAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer);")
  819. cpp_quote("HRESULT WINAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream,QWORD cbIndexStartOffset,IMFByteStream **pIIndexByteStream);")
  820. cpp_quote("HRESULT WINAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream,IMFMediaSink **ppIMediaSink);")
  821. cpp_quote("HRESULT WINAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName,IMFASFContentInfo *pContentInfo,IMFActivate **ppIActivate);")
  822. cpp_quote("HRESULT WINAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer);")
  823. cpp_quote("HRESULT WINAPI MFCreateASFProfile(IMFASFProfile **ppIProfile);")
  824. cpp_quote("HRESULT WINAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor *pIPD,IMFASFProfile **ppIProfile);")
  825. cpp_quote("HRESULT WINAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter);")
  826. cpp_quote("HRESULT WINAPI MFCreateAudioRenderer(IMFAttributes *pAudioAttributes, IMFMediaSink **ppSink);")
  827. cpp_quote("HRESULT WINAPI MFCreateAudioRendererActivate(IMFActivate **ppActivate);")
  828. cpp_quote("HRESULT WINAPI MFCreateDeviceSource(IMFAttributes *pAttributes,IMFMediaSource **ppSource);")
  829. cpp_quote("HRESULT WINAPI MFCreateMediaSession(IMFAttributes *pConfiguration,IMFMediaSession **ppMS);")
  830. cpp_quote("HRESULT WINAPI MFCreateMP3MediaSink(IMFByteStream *pTargetByteStream,IMFMediaSink **ppMediaSink);")
  831. cpp_quote("HRESULT WINAPI MFCreateMPEG4MediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink);")
  832. cpp_quote("HRESULT WINAPI MFCreateNetSchemePlugin(REFIID riid,LPVOID *ppvHandler);")
  833. cpp_quote("HRESULT WINAPI MFCreatePMPServer(DWORD dwCreationFlags,IMFPMPServer **ppPMPServer);")
  834. cpp_quote("HRESULT WINAPI MFCreatePMPMediaSession(DWORD dwCreationFlags,IMFAttributes *pConfiguration,IMFMediaSession **ppMediaSession,IMFActivate **ppEnablerActivate);")
  835. cpp_quote("HRESULT WINAPI MFCreatePathFromURL(LPCWSTR pwszFileURL,LPWSTR *ppwszFilePath);")
  836. cpp_quote("HRESULT WINAPI MFCreatePresentationClock(IMFPresentationClock **ppPresentationClock);")
  837. cpp_quote("HRESULT WINAPI MFCreatePresentationDescriptor(DWORD cStreamDescriptors,IMFStreamDescriptor **apStreamDescriptors,IMFPresentationDescriptor **ppPresentationDescriptor);")
  838. cpp_quote("HRESULT WINAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile,IMFPresentationDescriptor **ppIPD);")
  839. cpp_quote("HRESULT WINAPI MFCreateProxyLocator(LPCWSTR pszProtocol,IPropertyStore *pProxyConfig,IMFNetProxyLocator **ppProxyLocator);")
  840. cpp_quote("HRESULT WINAPI MFCreateRemoteDesktopPlugin(IMFRemoteDesktopPlugin **ppPlugin);")
  841. cpp_quote("HRESULT WINAPI MFCreateSample(IMFSample **ppIMFSample);")
  842. cpp_quote("HRESULT WINAPI MFCreateSampleCopierMFT(IMFTransform **ppCopierMFT);")
  843. cpp_quote("HRESULT WINAPI MFCreateSampleGrabberSinkActivate(IMFMediaType *pIMFMediaType,IMFSampleGrabberSinkCallback *pIMFSampleGrabberSinkCallback,IMFActivate **ppIActivate);")
  844. cpp_quote("HRESULT WINAPI MFCreateSequencerSource(IUnknown *pReserved,IMFSequencerSource **ppSequencerSource);")
  845. cpp_quote("HRESULT WINAPI MFCreateSimpleTypeHandler(IMFMediaTypeHandler **ppHandler);")
  846. cpp_quote("HRESULT WINAPI MFCreateStandardQualityManager(IMFQualityManager **ppQualityManager);")
  847. cpp_quote("HRESULT WINAPI MFCreateStreamDescriptor(DWORD dwStreamIdentifier,DWORD cMediaTypes,IMFMediaType **apMediaTypes,IMFStreamDescriptor **ppDescriptor);")
  848. cpp_quote("HRESULT WINAPI MFCreateSourceResolver(IMFSourceResolver **ppISourceResolver);")
  849. cpp_quote("HRESULT WINAPI MFCreateSystemTimeSource(IMFPresentationTimeSource **ppSystemTimeSource);")
  850. cpp_quote("HRESULT WINAPI MFCreateTopoLoader(IMFTopoLoader **ppObj);")
  851. cpp_quote("HRESULT WINAPI MFCreateTopology(IMFTopology **ppTopo);")
  852. cpp_quote("HRESULT WINAPI MFCreateTopologyNode(MF_TOPOLOGY_TYPE NodeType,IMFTopologyNode **ppNode);")
  853. cpp_quote("HRESULT WINAPI MFCreateVideoRenderer(REFIID riidRenderer,void **ppVideoRenderer);")
  854. cpp_quote("HRESULT WINAPI MFCreateVideoRendererActivate(HWND hwndVideo,IMFActivate **ppActivate);")
  855. cpp_quote("HRESULT WINAPI MFGetService(IUnknown *punkObject,REFGUID guidService,REFIID riid,LPVOID *ppvObject);")
  856. cpp_quote("HRESULT WINAPI MFGetSupportedMimeTypes(PROPVARIANT *pPropVarMimeTypeArray);")
  857. cpp_quote("HRESULT WINAPI MFGetSupportedSchemes(PROPVARIANT *pPropVarSchemeArray);")
  858. cpp_quote("MFTIME WINAPI MFGetSystemTime(void);")
  859. cpp_quote("HRESULT WINAPI MFShutdownObject(IUnknown *pUnk);")
  860. cpp_quote("HRESULT WINAPI CreateNamedPropertyStore(INamedPropertyStore **ppStore);")
  861. cpp_quote("HRESULT WINAPI CreatePropertyStore(IPropertyStore **ppStore);")
  862. cpp_quote("#if (WINVER >= 0x0601)")
  863. cpp_quote("")
  864. cpp_quote("HRESULT WINAPI MFCreateTranscodeProfile(IMFTranscodeProfile **ppTranscodeProfile);")
  865. cpp_quote("HRESULT WINAPI MFCreateTranscodeSinkActivate(IMFActivate **ppActivate);")
  866. cpp_quote("HRESULT WINAPI MFCreateTranscodeTopology(IMFMediaSource *pSrc,LPCWSTR pwszOutputFilePath,IMFTranscodeProfile *pProfile,IMFTopology **ppTranscodeTopo);")
  867. cpp_quote("HRESULT WINAPI MFEnumDeviceSources(IMFAttributes *pAttributes,IMFActivate ***pppSourceActivate,UINT32 *pcSourceActivate);")
  868. cpp_quote("HRESULT WINAPI MFGetTopoNodeCurrentType(IMFTopologyNode *pNode,DWORD dwStreamIndex,WINBOOL fOutput,IMFMediaType **ppType);")
  869. cpp_quote("HRESULT WINAPI MFTranscodeGetAudioOutputAvailableTypes(REFGUID guidSubType,DWORD dwMFTFlags,IMFAttributes *pCodecConfig,IMFCollection **ppAvailableTypes);")
  870. cpp_quote("#endif")
  871. cpp_quote("EXTERN_GUID(MFNETSOURCE_STATISTICS, 0x3cb1f274, 0x0505, 0x4c5d, 0xae, 0x71, 0x0a, 0x55, 0x63, 0x44, 0xef, 0xa1);")
  872. cpp_quote("EXTERN_GUID(MFNETSOURCE_STATISTICS_SERVICE, 0x3cb1f275, 0x0505, 0x4c5d, 0xae, 0x71, 0x0a, 0x55, 0x63, 0x44, 0xef, 0xa1);")
  873. cpp_quote("EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_MIXER_CLSID, 0xba491360, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );")
  874. cpp_quote("EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_MIXER_ACTIVATE, 0xba491361, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );")
  875. cpp_quote("EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_MIXER_FLAGS, 0xba491362, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );")
  876. cpp_quote("EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_CLSID, 0xba491364, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );")
  877. cpp_quote("EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_ACTIVATE, 0xba491365, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );")
  878. cpp_quote("EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_FLAGS, 0xba491366, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );")
  879. cpp_quote("EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_SESSION_ID, 0xede4b5e3, 0xf805, 0x4d6c, 0x99, 0xb3, 0xdb, 0x01, 0xbf, 0x95, 0xdf, 0xab);")
  880. cpp_quote("EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_ENDPOINT_ID, 0xb10aaec3, 0xef71, 0x4cc3, 0xb8, 0x73, 0x5, 0xa9, 0xa0, 0x8b, 0x9f, 0x8e);")
  881. cpp_quote("EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_ENDPOINT_ROLE, 0x6ba644ff, 0x27c5, 0x4d02, 0x98, 0x87, 0xc2, 0x86, 0x19, 0xfd, 0xb9, 0x1b);")
  882. cpp_quote("EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_STREAM_CATEGORY, 0xa9770471, 0x92ec, 0x4df4, 0x94, 0xfe, 0x81, 0xc3, 0x6f, 0xc, 0x3a, 0x7a);")
  883. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME, 0x60d0e559,0x52f8,0x4fa2,0xbb,0xce,0xac,0xdb,0x34,0xa8,0xec,0x1);")
  884. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_MEDIA_TYPE, 0x56a819ca,0xc78,0x4de4,0xa0,0xa7,0x3d,0xda,0xba,0xf,0x24,0xd4);")
  885. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_GUID, 0x14dd9a1c, 0x7cff, 0x41be, 0xb1, 0xb9, 0xba, 0x1a, 0xc6, 0xec, 0xb5, 0x71);")
  886. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ENDPOINT_ID, 0x30da9258,0xfeb9,0x47a7,0xa4,0x53,0x76,0x3a,0x7a,0x8e,0x1c,0x5f);")
  887. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ROLE, 0xbc9d118e,0x8c67,0x4a18,0x85,0xd4,0x12,0xd3,0x0,0x40,0x5,0x52);")
  888. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_CATEGORY, 0x77f0ae69,0xc3bd,0x4509,0x94,0x1d,0x46,0x7e,0x4d,0x24,0x89,0x9e);")
  889. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_HW_SOURCE, 0xde7046ba,0x54d6,0x4487,0xa2,0xa4,0xec,0x7c,0xd,0x1b,0xd1,0x63);")
  890. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_MAX_BUFFERS, 0x7dd9b730,0x4f2d,0x41d5,0x8f,0x95,0xc,0xc9,0xa9,0x12,0xba,0x26);")
  891. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK, 0x58f0aad8,0x22bf,0x4f8a,0xbb,0x3d,0xd2,0xc4,0x97,0x8c,0x6e,0x2f);")
  892. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, 0xc60ac5fe,0x252a,0x478f,0xa0,0xef,0xbc,0x8f,0xa5,0xf7,0xca,0xd3);")
  893. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID, 0x8ac3587a,0x4ae7,0x42d8,0x99,0xe0,0x0a,0x60,0x13,0xee,0xf9,0x0f);")
  894. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_SYMBOLIC_LINK, 0x98d24b5e, 0x5930, 0x4614, 0xb5, 0xa1, 0xf6, 0x0, 0xf9, 0x35, 0x5a, 0x78);")
  895. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_PROVIDER_DEVICE_ID, 0x36689d42, 0xa06c, 0x40ae, 0x84, 0xcf, 0xf5, 0xa0, 0x34, 0x6, 0x7c, 0xc4);")
  896. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_XADDRESS, 0xbca0be52, 0xc327, 0x44c7, 0x9b, 0x7d, 0x7f, 0xa8, 0xd9, 0xb5, 0xbc, 0xda);")
  897. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_STREAM_URL, 0x9d7b40d2, 0x3617, 0x4043, 0x93, 0xe3, 0x8d, 0x6d, 0xa9, 0xbb, 0x34, 0x92);")
  898. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_USERNAME,0x5d01add, 0x949f, 0x46eb, 0xbc, 0x8e, 0x8b, 0xd, 0x2b, 0x32, 0xd7, 0x9d);")
  899. cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_PASSWORD, 0xa0fd7e16, 0x42d9, 0x49df, 0x84, 0xc0, 0xe8, 0x2c, 0x5e, 0xab, 0x88, 0x74);")
  900. cpp_quote("EXTERN_GUID(MF_METADATA_PROVIDER_SERVICE, 0xdb214084, 0x58a4, 0x4d2e, 0xb8, 0x4f, 0x6f, 0x75, 0x5b, 0x2f, 0x7a, 0xd);")
  901. cpp_quote("EXTERN_GUID(MF_PROPERTY_HANDLER_SERVICE, 0xa3face02, 0x32b8, 0x41dd, 0x90, 0xe7, 0x5f, 0xef, 0x7c, 0x89, 0x91, 0xb5);")
  902. cpp_quote("EXTERN_GUID(MF_RATE_CONTROL_SERVICE, 0x866fa297, 0xb802, 0x4bf8, 0x9d, 0xc9, 0x5e, 0x3b, 0x6a, 0x9f, 0x53, 0xc9);")
  903. cpp_quote("EXTERN_GUID(MF_SAMPLEGRABBERSINK_IGNORE_CLOCK, 0x0efda2c0, 0x2b69, 0x4e2e, 0xab, 0x8d, 0x46, 0xdc, 0xbf, 0xf7, 0xd2, 0x5d);")
  904. cpp_quote("EXTERN_GUID(MF_SD_LANGUAGE, 0xaf2180, 0xbdc2, 0x423c, 0xab, 0xca, 0xf5, 0x3, 0x59, 0x3b, 0xc1, 0x21);")
  905. cpp_quote("EXTERN_GUID(MF_SD_PROTECTED, 0xaf2181, 0xbdc2, 0x423c, 0xab, 0xca, 0xf5, 0x3, 0x59, 0x3b, 0xc1, 0x21);")
  906. cpp_quote("EXTERN_GUID(MF_SD_STREAM_NAME, 0x4f1b099d, 0xd314, 0x41e5, 0xa7, 0x81, 0x7f, 0xef, 0xaa, 0x4c, 0x50, 0x1f);")
  907. cpp_quote("EXTERN_GUID(MF_SD_MUTUALLY_EXCLUSIVE, 0x23ef79c, 0x388d, 0x487f, 0xac, 0x17, 0x69, 0x6c, 0xd6, 0xe3, 0xc6, 0xf5);")
  908. cpp_quote("EXTERN_GUID(MF_TOPONODE_DRAIN, 0x494bbce9, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  909. cpp_quote("EXTERN_GUID(MF_TOPONODE_D3DAWARE, 0x494bbced, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  910. cpp_quote("EXTERN_GUID(MF_TOPOLOGY_RESOLUTION_STATUS, 0x494bbcde, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  911. cpp_quote("EXTERN_GUID(MF_TOPONODE_ERRORCODE, 0x494bbcee, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  912. cpp_quote("EXTERN_GUID(MF_TOPONODE_CONNECT_METHOD, 0x494bbcf1, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  913. cpp_quote("EXTERN_GUID(MF_TOPONODE_LOCKED, 0x494bbcf7, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  914. cpp_quote("EXTERN_GUID(MF_TOPONODE_WORKQUEUE_ID, 0x494bbcf8, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  915. cpp_quote("EXTERN_GUID(MF_TOPONODE_WORKQUEUE_MMCSS_CLASS, 0x494bbcf9, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  916. cpp_quote("EXTERN_GUID(MF_TOPONODE_DECRYPTOR, 0x494bbcfa, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  917. cpp_quote("EXTERN_GUID(MF_TOPONODE_DISCARDABLE, 0x494bbcfb, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  918. cpp_quote("EXTERN_GUID(MF_TOPONODE_ERROR_MAJORTYPE, 0x494bbcfd, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  919. cpp_quote("EXTERN_GUID(MF_TOPONODE_ERROR_SUBTYPE, 0x494bbcfe, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  920. cpp_quote("EXTERN_GUID(MF_TOPONODE_WORKQUEUE_MMCSS_TASKID, 0x494bbcff, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  921. cpp_quote("EXTERN_GUID(MF_TOPONODE_WORKQUEUE_MMCSS_PRIORITY, 0x5001f840, 0x2816, 0x48f4, 0x93, 0x64, 0xad, 0x1e, 0xf6, 0x61, 0xa1, 0x23);")
  922. cpp_quote("EXTERN_GUID(MF_TOPONODE_WORKQUEUE_ITEM_PRIORITY, 0xa1ff99be, 0x5e97, 0x4a53, 0xb4, 0x94, 0x56, 0x8c, 0x64, 0x2c, 0x0f, 0xf3);")
  923. cpp_quote("EXTERN_GUID(MF_TOPONODE_MARKIN_HERE, 0x494bbd00, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  924. cpp_quote("EXTERN_GUID(MF_TOPONODE_MARKOUT_HERE, 0x494bbd01, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  925. cpp_quote("EXTERN_GUID(MF_TOPONODE_DECODER, 0x494bbd02, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);")
  926. cpp_quote("EXTERN_GUID(MF_TOPONODE_MEDIASTART, 0x835c58ea, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);")
  927. cpp_quote("EXTERN_GUID(MF_TOPONODE_MEDIASTOP, 0x835c58eb, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);")
  928. cpp_quote("EXTERN_GUID(MF_TOPONODE_SOURCE, 0x835c58ec, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);")
  929. cpp_quote("EXTERN_GUID(MF_TOPONODE_PRESENTATION_DESCRIPTOR, 0x835c58ed, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);")
  930. cpp_quote("EXTERN_GUID(MF_TOPONODE_STREAM_DESCRIPTOR, 0x835c58ee, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);")
  931. cpp_quote("EXTERN_GUID(MF_TOPONODE_SEQUENCE_ELEMENTID, 0x835c58ef, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);")
  932. cpp_quote("EXTERN_GUID(MF_TOPONODE_TRANSFORM_OBJECTID, 0x88dcc0c9, 0x293e, 0x4e8b, 0x9a, 0xeb, 0xa, 0xd6, 0x4c, 0xc0, 0x16, 0xb0);")
  933. cpp_quote("EXTERN_GUID(MF_TOPONODE_STREAMID, 0x14932f9b, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04);")
  934. cpp_quote("EXTERN_GUID(MF_TOPONODE_NOSHUTDOWN_ON_REMOVE, 0x14932f9c, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04);")
  935. cpp_quote("EXTERN_GUID(MF_TOPONODE_RATELESS, 0x14932f9d, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04);")
  936. cpp_quote("EXTERN_GUID(MF_TOPONODE_DISABLE_PREROLL, 0x14932f9e, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04);")
  937. cpp_quote("EXTERN_GUID(MF_TOPONODE_PRIMARYOUTPUT, 0x6304ef99, 0x16b2, 0x4ebe, 0x9d, 0x67, 0xe4, 0xc5, 0x39, 0xb3, 0xa2, 0x59);")
  938. cpp_quote("EXTERN_GUID(MF_TRANSCODE_SKIP_METADATA_TRANSFER, 0x4e4469ef, 0xb571, 0x4959, 0x8f, 0x83, 0x3d, 0xcf, 0xba, 0x33, 0xa3, 0x93);")
  939. cpp_quote("EXTERN_GUID(MF_TRANSCODE_TOPOLOGYMODE, 0x3e3df610, 0x394a, 0x40b2, 0x9d, 0xea, 0x3b, 0xab, 0x65, 0xb, 0xeb, 0xf2);")
  940. cpp_quote("EXTERN_GUID(MF_TRANSCODE_ADJUST_PROFILE, 0x9c37c21b, 0x60f, 0x487c, 0xa6, 0x90, 0x80, 0xd7, 0xf5, 0xd, 0x1c, 0x72);")
  941. cpp_quote("EXTERN_GUID(MF_TRANSCODE_ENCODINGPROFILE, 0x6947787c, 0xf508, 0x4ea9, 0xb1, 0xe9, 0xa1, 0xfe, 0x3a, 0x49, 0xfb, 0xc9);")
  942. cpp_quote("EXTERN_GUID(MF_TRANSCODE_QUALITYVSSPEED, 0x98332df8, 0x03cd, 0x476b, 0x89, 0xfa, 0x3f, 0x9e, 0x44, 0x2d, 0xec, 0x9f);")
  943. cpp_quote("EXTERN_GUID(MF_TRANSCODE_DONOT_INSERT_ENCODER, 0xf45aa7ce, 0xab24, 0x4012, 0xa1, 0x1b, 0xdc, 0x82, 0x20, 0x20, 0x14, 0x10);")
  944. cpp_quote("EXTERN_GUID(MR_AUDIO_POLICY_SERVICE, 0x911fd737, 0x6775, 0x4ab0, 0xa6, 0x14, 0x29, 0x78, 0x62, 0xfd, 0xac, 0x88);")
  945. cpp_quote("EXTERN_GUID(MR_CAPTURE_POLICY_VOLUME_SERVICE, 0x24030acd, 0x107a, 0x4265, 0x97, 0x5c, 0x41, 0x4e, 0x33, 0xe6, 0x5f, 0x2a);")
  946. cpp_quote("EXTERN_GUID(MR_POLICY_VOLUME_SERVICE, 0x1abaa2ac, 0x9d3b, 0x47c6, 0xab, 0x48, 0xc5, 0x95, 0x6, 0xde, 0x78, 0x4d);")
  947. cpp_quote("EXTERN_GUID(MR_STREAM_VOLUME_SERVICE, 0xf8b5fa2f, 0x32ef, 0x46f5, 0xb1, 0x72, 0x13, 0x21, 0x21, 0x2f, 0xb2, 0xc4);")