wmcontainer.h 114 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667
  1. /*** Autogenerated by WIDL 7.7 from include/wmcontainer.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __wmcontainer_h__
  14. #define __wmcontainer_h__
  15. /* Forward declarations */
  16. #ifndef __IMFASFContentInfo_FWD_DEFINED__
  17. #define __IMFASFContentInfo_FWD_DEFINED__
  18. typedef interface IMFASFContentInfo IMFASFContentInfo;
  19. #ifdef __cplusplus
  20. interface IMFASFContentInfo;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IMFASFMutualExclusion_FWD_DEFINED__
  24. #define __IMFASFMutualExclusion_FWD_DEFINED__
  25. typedef interface IMFASFMutualExclusion IMFASFMutualExclusion;
  26. #ifdef __cplusplus
  27. interface IMFASFMutualExclusion;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IMFASFStreamPrioritization_FWD_DEFINED__
  31. #define __IMFASFStreamPrioritization_FWD_DEFINED__
  32. typedef interface IMFASFStreamPrioritization IMFASFStreamPrioritization;
  33. #ifdef __cplusplus
  34. interface IMFASFStreamPrioritization;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __IMFASFSplitter_FWD_DEFINED__
  38. #define __IMFASFSplitter_FWD_DEFINED__
  39. typedef interface IMFASFSplitter IMFASFSplitter;
  40. #ifdef __cplusplus
  41. interface IMFASFSplitter;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __IMFASFMultiplexer_FWD_DEFINED__
  45. #define __IMFASFMultiplexer_FWD_DEFINED__
  46. typedef interface IMFASFMultiplexer IMFASFMultiplexer;
  47. #ifdef __cplusplus
  48. interface IMFASFMultiplexer;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __IMFASFIndexer_FWD_DEFINED__
  52. #define __IMFASFIndexer_FWD_DEFINED__
  53. typedef interface IMFASFIndexer IMFASFIndexer;
  54. #ifdef __cplusplus
  55. interface IMFASFIndexer;
  56. #endif /* __cplusplus */
  57. #endif
  58. #ifndef __IMFASFStreamSelector_FWD_DEFINED__
  59. #define __IMFASFStreamSelector_FWD_DEFINED__
  60. typedef interface IMFASFStreamSelector IMFASFStreamSelector;
  61. #ifdef __cplusplus
  62. interface IMFASFStreamSelector;
  63. #endif /* __cplusplus */
  64. #endif
  65. #ifndef __IMFDRMNetHelper_FWD_DEFINED__
  66. #define __IMFDRMNetHelper_FWD_DEFINED__
  67. typedef interface IMFDRMNetHelper IMFDRMNetHelper;
  68. #ifdef __cplusplus
  69. interface IMFDRMNetHelper;
  70. #endif /* __cplusplus */
  71. #endif
  72. #ifndef __IMFASFProfile_FWD_DEFINED__
  73. #define __IMFASFProfile_FWD_DEFINED__
  74. typedef interface IMFASFProfile IMFASFProfile;
  75. #ifdef __cplusplus
  76. interface IMFASFProfile;
  77. #endif /* __cplusplus */
  78. #endif
  79. #ifndef __IMFASFStreamConfig_FWD_DEFINED__
  80. #define __IMFASFStreamConfig_FWD_DEFINED__
  81. typedef interface IMFASFStreamConfig IMFASFStreamConfig;
  82. #ifdef __cplusplus
  83. interface IMFASFStreamConfig;
  84. #endif /* __cplusplus */
  85. #endif
  86. /* Headers for imported files */
  87. #include <mfidl.h>
  88. #ifdef __cplusplus
  89. extern "C" {
  90. #endif
  91. #include <winapifamily.h>
  92. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  93. EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_FILE_ID, 0x3de649b4, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
  94. EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_CREATION_TIME, 0x3de649b6, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
  95. EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_FLAGS, 0x3de649bb, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
  96. EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MAX_PACKET_SIZE, 0x3de649bd, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
  97. EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MAX_BITRATE, 0x3de649be, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
  98. EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MIN_PACKET_SIZE, 0x3de649bc, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
  99. EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PACKETS, 0x3de649b7, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
  100. EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PLAY_DURATION, 0x3de649b8, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
  101. EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PREROLL, 0x3de649ba, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
  102. EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_SEND_DURATION, 0x3de649b9, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
  103. EXTERN_GUID(CLSID_WMDRMSystemID, 0x8948BB22, 0x11BD, 0x4796, 0x93, 0xE3, 0x97, 0x4D, 0x1B, 0x57, 0x56, 0x78);
  104. EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_KEYID, 0x8520fe3e, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);
  105. EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_LICENSE_URL, 0x8520fe40, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);
  106. EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_SECRET_DATA, 0x8520fe3f, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);
  107. EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_TYPE, 0x8520fe3d, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);
  108. EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTIONEX_ENCRYPTION_DATA, 0x62508be5, 0xecdf, 0x4924, 0xa3, 0x59, 0x72, 0xba, 0xb3, 0x39, 0x7b, 0x9d);
  109. EXTERN_GUID(MF_PD_ASF_LANGLIST, 0xf23de43c, 0x9977, 0x460d, 0xa6, 0xec, 0x32, 0x93, 0x7f, 0x16, 0xf, 0x7d);
  110. EXTERN_GUID(MF_PD_ASF_MARKER, 0x5134330e, 0x83a6, 0x475e, 0xa9, 0xd5, 0x4f, 0xb8, 0x75, 0xfb, 0x2e, 0x31);
  111. EXTERN_GUID(MF_PD_ASF_SCRIPT, 0xe29cd0d7, 0xd602, 0x4923, 0xa7, 0xfe, 0x73, 0xfd, 0x97, 0xec, 0xc6, 0x50);
  112. EXTERN_GUID(MF_PD_ASF_CODECLIST, 0xe4bb3509, 0xc18d, 0x4df1, 0xbb, 0x99, 0x7a, 0x36, 0xb3, 0xcc, 0x41, 0x19);
  113. EXTERN_GUID(MF_PD_ASF_METADATA_IS_VBR, 0x5fc6947a, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);
  114. EXTERN_GUID(MF_PD_ASF_METADATA_V8_VBRPEAK, 0x5fc6947b, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);
  115. EXTERN_GUID(MF_PD_ASF_METADATA_V8_BUFFERAVERAGE, 0x5fc6947c, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);
  116. EXTERN_GUID(MF_PD_ASF_METADATA_LEAKY_BUCKET_PAIRS, 0x5fc6947d, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);
  117. EXTERN_GUID(MF_PD_ASF_DATA_START_OFFSET, 0xe7d5b3e7, 0x1f29, 0x45d3, 0x88, 0x22, 0x3e, 0x78, 0xfa, 0xe2, 0x72, 0xed);
  118. EXTERN_GUID(MF_PD_ASF_DATA_LENGTH, 0xe7d5b3e8, 0x1f29, 0x45d3, 0x88, 0x22, 0x3e, 0x78, 0xfa, 0xe2, 0x72, 0xed);
  119. EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_LANGUAGE_ID_INDEX, 0x48f8a522, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);
  120. EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_AVG_DATA_BITRATE, 0x48f8a523, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);
  121. EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_AVG_BUFFERSIZE, 0x48f8a524, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);
  122. EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_MAX_DATA_BITRATE, 0x48f8a525, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);
  123. EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_MAX_BUFFERSIZE, 0x48f8a526, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);
  124. EXTERN_GUID(MF_SD_ASF_STREAMBITRATES_BITRATE, 0xa8e182ed, 0xafc8, 0x43d0, 0xb0, 0xd1, 0xf6, 0x5b, 0xad, 0x9d, 0xa5, 0x58);
  125. EXTERN_GUID(MF_SD_ASF_METADATA_DEVICE_CONFORMANCE_TEMPLATE, 0x245e929d, 0xc44e, 0x4f7e, 0xbb, 0x3c, 0x77, 0xd4, 0xdf, 0xd2, 0x7f, 0x8a);
  126. EXTERN_GUID(MF_PD_ASF_INFO_HAS_AUDIO, 0x80e62295, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c);
  127. EXTERN_GUID(MF_PD_ASF_INFO_HAS_VIDEO, 0x80e62296, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c);
  128. EXTERN_GUID(MF_PD_ASF_INFO_HAS_NON_AUDIO_VIDEO, 0x80e62297, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c);
  129. #if WINVER >= 0x0601
  130. EXTERN_GUID(MFASFINDEXER_TYPE_TIMECODE, 0x49815231, 0x6bad, 0x44fd, 0x81, 0xa, 0x3f, 0x60, 0x98, 0x4e, 0xc7, 0xfd);
  131. EXTERN_GUID(MF_PD_ASF_LANGLIST_LEGACYORDER, 0xf23de43d, 0x9977, 0x460d, 0xa6, 0xec, 0x32, 0x93, 0x7f, 0x16, 0xf, 0x7d);
  132. #endif
  133. EXTERN_GUID(MFASFMutexType_Bitrate, 0x72178C2C, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);
  134. EXTERN_GUID(MFASFMutexType_Language, 0x72178C2B, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);
  135. EXTERN_GUID(MFASFMutexType_Presentation, 0x72178C2D, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);
  136. EXTERN_GUID(MFASFMutexType_Unknown, 0x72178C2E, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);
  137. EXTERN_GUID(MFASFSampleExtension_ContentType, 0xd590dc20, 0x07bc, 0x436c, 0x9c, 0xf7, 0xf3, 0xbb, 0xfb, 0xf1, 0xa4, 0xdc);
  138. EXTERN_GUID(MFASFSampleExtension_Encryption_SampleID, 0x6698B84E, 0x0AFA, 0x4330, 0xAE, 0xB2, 0x1C, 0x0A, 0x98, 0xD7, 0xA4, 0x4D);
  139. EXTERN_GUID(MFASFSampleExtension_Encryption_KeyID, 0x76376591, 0x795f, 0x4da1, 0x86, 0xed, 0x9d, 0x46, 0xec, 0xa1, 0x09, 0xa9);
  140. EXTERN_GUID(MFASFSampleExtension_FileName, 0xe165ec0e, 0x19ed, 0x45d7, 0xb4, 0xa7, 0x25, 0xcb, 0xd1, 0xe2, 0x8e, 0x9b);
  141. EXTERN_GUID(MFASFSampleExtension_OutputCleanPoint, 0xf72a3c6f, 0x6eb4, 0x4ebc, 0xb1, 0x92, 0x9, 0xad, 0x97, 0x59, 0xe8, 0x28);
  142. EXTERN_GUID(MFASFSampleExtension_PixelAspectRatio, 0x1b1ee554, 0xf9ea, 0x4bc8, 0x82, 0x1a, 0x37, 0x6b, 0x74, 0xe4, 0xc4, 0xb8);
  143. EXTERN_GUID(MFASFSampleExtension_SampleDuration, 0xc6bd9450, 0x867f, 0x4907, 0x83, 0xa3, 0xc7, 0x79, 0x21, 0xb7, 0x33, 0xad);
  144. EXTERN_GUID(MFASFSampleExtension_SMPTE, 0x399595ec, 0x8667, 0x4e2d, 0x8f, 0xdb, 0x98, 0x81, 0x4c, 0xe7, 0x6c, 0x1e);
  145. EXTERN_GUID(MFASFSPLITTER_PACKET_BOUNDARY, 0xfe584a05, 0xe8d6, 0x42e3, 0xb1, 0x76, 0xf1, 0x21, 0x17, 0x5, 0xfb, 0x6f);
  146. EXTERN_GUID(MF_ASFPROFILE_MINPACKETSIZE, 0x22587626, 0x47de, 0x4168, 0x87, 0xf5, 0xb5, 0xaa, 0x9b, 0x12, 0xa8, 0xf0);
  147. EXTERN_GUID(MF_ASFPROFILE_MAXPACKETSIZE, 0x22587627, 0x47de, 0x4168, 0x87, 0xf5, 0xb5, 0xaa, 0x9b, 0x12, 0xa8, 0xf0);
  148. EXTERN_GUID(MF_ASFSTREAMCONFIG_LEAKYBUCKET1, 0xc69b5901, 0xea1a, 0x4c9b, 0xb6, 0x92, 0xe2, 0xa0, 0xd2, 0x9a, 0x8a, 0xdd);
  149. EXTERN_GUID(MF_ASFSTREAMCONFIG_LEAKYBUCKET2, 0xc69b5902, 0xea1a, 0x4c9b, 0xb6, 0x92, 0xe2, 0xa0, 0xd2, 0x9a, 0x8a, 0xdd);
  150. #ifndef __IMFASFProfile_FWD_DEFINED__
  151. #define __IMFASFProfile_FWD_DEFINED__
  152. typedef interface IMFASFProfile IMFASFProfile;
  153. #ifdef __cplusplus
  154. interface IMFASFProfile;
  155. #endif /* __cplusplus */
  156. #endif
  157. #ifndef __IMFASFStreamConfig_FWD_DEFINED__
  158. #define __IMFASFStreamConfig_FWD_DEFINED__
  159. typedef interface IMFASFStreamConfig IMFASFStreamConfig;
  160. #ifdef __cplusplus
  161. interface IMFASFStreamConfig;
  162. #endif /* __cplusplus */
  163. #endif
  164. #ifndef __IMFASFMutualExclusion_FWD_DEFINED__
  165. #define __IMFASFMutualExclusion_FWD_DEFINED__
  166. typedef interface IMFASFMutualExclusion IMFASFMutualExclusion;
  167. #ifdef __cplusplus
  168. interface IMFASFMutualExclusion;
  169. #endif /* __cplusplus */
  170. #endif
  171. #ifndef __IMFASFStreamPrioritization_FWD_DEFINED__
  172. #define __IMFASFStreamPrioritization_FWD_DEFINED__
  173. typedef interface IMFASFStreamPrioritization IMFASFStreamPrioritization;
  174. #ifdef __cplusplus
  175. interface IMFASFStreamPrioritization;
  176. #endif /* __cplusplus */
  177. #endif
  178. #define MFASFINDEXER_PER_ENTRY_BYTES_DYNAMIC 0xffff
  179. #define MFASFINDEXER_NO_FIXED_INTERVAL 0xffffffff
  180. #define MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT 0xffffffffffffffffll
  181. #define MFASFINDEXER_APPROX_SEEK_TIME_UNKNOWN 0xffffffffffffffffll
  182. #define MFASF_MIN_HEADER_BYTES (sizeof (GUID) + sizeof (QWORD))
  183. #define MFASF_MAX_STREAM_NUMBER 127
  184. #define MFASF_INVALID_STREAM_NUMBER (MFASF_MAX_STREAM_NUMBER + 1)
  185. #define MFASF_PAYLOADEXTENSION_MAX_SIZE 0xff
  186. #define MFASF_PAYLOADEXTENSION_VARIABLE_SIZE 0xffff
  187. #define MFASF_DEFAULT_BUFFER_WINDOW_MS 3000
  188. typedef enum MFASF_SPLITTERFLAGS {
  189. MFASF_SPLITTER_REVERSE = 0x1,
  190. MFASF_SPLITTER_WMDRM = 0x2
  191. } MFASF_SPLITTERFLAGS;
  192. typedef enum ASF_STATUSFLAGS {
  193. ASF_STATUSFLAGS_INCOMPLETE = 0x1
  194. } ASF_STATUSFLAGS;
  195. typedef enum MFASF_MULTIPLEXERFLAGS {
  196. MFASF_MULTIPLEXER_AUTOADJUST_BITRATE = 0x1
  197. } MFASF_MULTIPLEXERFLAGS;
  198. typedef enum MFASF_INDEXERFLAGS {
  199. MFASF_INDEXER_WRITE_NEW_INDEX = 0x1,
  200. MFASF_INDEXER_READ_FOR_REVERSEPLAYBACK = 0x2,
  201. MFASF_INDEXER_WRITE_FOR_LIVEREAD = 0x4
  202. } MFASF_INDEXER_FLAGS;
  203. typedef enum MFASF_STREAMSELECTORFLAGS {
  204. MFASF_STREAMSELECTOR_DISABLE_THINNING = 0x1,
  205. MFASF_STREAMSELECTOR_USE_AVERAGE_BITRATE = 0x2
  206. } MFASF_STREAMSELECTOR_FLAGS;
  207. typedef enum ASF_SELECTION_STATUS {
  208. ASF_STATUS_NOTSELECTED = 0,
  209. ASF_STATUS_CLEANPOINTSONLY = 1,
  210. ASF_STATUS_ALLDATAUNITS = 2
  211. } ASF_SELECTION_STATUS;
  212. typedef enum _MFSINK_WMDRMACTION {
  213. MFSINK_WMDRMACTION_UNDEFINED = 0,
  214. MFSINK_WMDRMACTION_ENCODE = 1,
  215. MFSINK_WMDRMACTION_TRANSCODE = 2,
  216. MFSINK_WMDRMACTION_TRANSCRYPT = 3,
  217. MFSINK_WMDRMACTION_LAST = 3
  218. } MFSINK_WMDRMACTION;
  219. typedef struct ASF_MUX_STATISTICS {
  220. DWORD cFramesWritten;
  221. DWORD cFramesDropped;
  222. } ASF_MUX_STATISTICS;
  223. typedef struct _ASF_INDEX_IDENTIFIER {
  224. GUID guidIndexType;
  225. WORD wStreamNumber;
  226. } ASF_INDEX_IDENTIFIER;
  227. typedef struct _ASF_INDEX_DESCRIPTOR {
  228. ASF_INDEX_IDENTIFIER Identifier;
  229. WORD cPerEntryBytes;
  230. WCHAR szDescription[32];
  231. DWORD dwInterval;
  232. } ASF_INDEX_DESCRIPTOR;
  233. /*****************************************************************************
  234. * IMFASFContentInfo interface
  235. */
  236. #ifndef __IMFASFContentInfo_INTERFACE_DEFINED__
  237. #define __IMFASFContentInfo_INTERFACE_DEFINED__
  238. DEFINE_GUID(IID_IMFASFContentInfo, 0xb1dca5cd, 0xd5da, 0x4451, 0x8e,0x9e, 0xdb,0x5c,0x59,0x91,0x4e,0xad);
  239. #if defined(__cplusplus) && !defined(CINTERFACE)
  240. MIDL_INTERFACE("b1dca5cd-d5da-4451-8e9e-db5c59914ead")
  241. IMFASFContentInfo : public IUnknown
  242. {
  243. virtual HRESULT STDMETHODCALLTYPE GetHeaderSize(
  244. IMFMediaBuffer *pIStartOfContent,
  245. QWORD *cbHeaderSize) = 0;
  246. virtual HRESULT STDMETHODCALLTYPE ParseHeader(
  247. IMFMediaBuffer *pIHeaderBuffer,
  248. QWORD cbOffsetWithinHeader) = 0;
  249. virtual HRESULT STDMETHODCALLTYPE GenerateHeader(
  250. IMFMediaBuffer *pIHeader,
  251. DWORD *pcbHeader) = 0;
  252. virtual HRESULT STDMETHODCALLTYPE GetProfile(
  253. IMFASFProfile **ppIProfile) = 0;
  254. virtual HRESULT STDMETHODCALLTYPE SetProfile(
  255. IMFASFProfile *pIProfile) = 0;
  256. virtual HRESULT STDMETHODCALLTYPE GeneratePresentationDescriptor(
  257. IMFPresentationDescriptor **ppIPresentationDescriptor) = 0;
  258. virtual HRESULT STDMETHODCALLTYPE GetEncodingConfigurationPropertyStore(
  259. WORD wStreamNumber,
  260. IPropertyStore **ppIStore) = 0;
  261. };
  262. #ifdef __CRT_UUID_DECL
  263. __CRT_UUID_DECL(IMFASFContentInfo, 0xb1dca5cd, 0xd5da, 0x4451, 0x8e,0x9e, 0xdb,0x5c,0x59,0x91,0x4e,0xad)
  264. #endif
  265. #else
  266. typedef struct IMFASFContentInfoVtbl {
  267. BEGIN_INTERFACE
  268. /*** IUnknown methods ***/
  269. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  270. IMFASFContentInfo *This,
  271. REFIID riid,
  272. void **ppvObject);
  273. ULONG (STDMETHODCALLTYPE *AddRef)(
  274. IMFASFContentInfo *This);
  275. ULONG (STDMETHODCALLTYPE *Release)(
  276. IMFASFContentInfo *This);
  277. /*** IMFASFContentInfo methods ***/
  278. HRESULT (STDMETHODCALLTYPE *GetHeaderSize)(
  279. IMFASFContentInfo *This,
  280. IMFMediaBuffer *pIStartOfContent,
  281. QWORD *cbHeaderSize);
  282. HRESULT (STDMETHODCALLTYPE *ParseHeader)(
  283. IMFASFContentInfo *This,
  284. IMFMediaBuffer *pIHeaderBuffer,
  285. QWORD cbOffsetWithinHeader);
  286. HRESULT (STDMETHODCALLTYPE *GenerateHeader)(
  287. IMFASFContentInfo *This,
  288. IMFMediaBuffer *pIHeader,
  289. DWORD *pcbHeader);
  290. HRESULT (STDMETHODCALLTYPE *GetProfile)(
  291. IMFASFContentInfo *This,
  292. IMFASFProfile **ppIProfile);
  293. HRESULT (STDMETHODCALLTYPE *SetProfile)(
  294. IMFASFContentInfo *This,
  295. IMFASFProfile *pIProfile);
  296. HRESULT (STDMETHODCALLTYPE *GeneratePresentationDescriptor)(
  297. IMFASFContentInfo *This,
  298. IMFPresentationDescriptor **ppIPresentationDescriptor);
  299. HRESULT (STDMETHODCALLTYPE *GetEncodingConfigurationPropertyStore)(
  300. IMFASFContentInfo *This,
  301. WORD wStreamNumber,
  302. IPropertyStore **ppIStore);
  303. END_INTERFACE
  304. } IMFASFContentInfoVtbl;
  305. interface IMFASFContentInfo {
  306. CONST_VTBL IMFASFContentInfoVtbl* lpVtbl;
  307. };
  308. #ifdef COBJMACROS
  309. #ifndef WIDL_C_INLINE_WRAPPERS
  310. /*** IUnknown methods ***/
  311. #define IMFASFContentInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  312. #define IMFASFContentInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  313. #define IMFASFContentInfo_Release(This) (This)->lpVtbl->Release(This)
  314. /*** IMFASFContentInfo methods ***/
  315. #define IMFASFContentInfo_GetHeaderSize(This,pIStartOfContent,cbHeaderSize) (This)->lpVtbl->GetHeaderSize(This,pIStartOfContent,cbHeaderSize)
  316. #define IMFASFContentInfo_ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader) (This)->lpVtbl->ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader)
  317. #define IMFASFContentInfo_GenerateHeader(This,pIHeader,pcbHeader) (This)->lpVtbl->GenerateHeader(This,pIHeader,pcbHeader)
  318. #define IMFASFContentInfo_GetProfile(This,ppIProfile) (This)->lpVtbl->GetProfile(This,ppIProfile)
  319. #define IMFASFContentInfo_SetProfile(This,pIProfile) (This)->lpVtbl->SetProfile(This,pIProfile)
  320. #define IMFASFContentInfo_GeneratePresentationDescriptor(This,ppIPresentationDescriptor) (This)->lpVtbl->GeneratePresentationDescriptor(This,ppIPresentationDescriptor)
  321. #define IMFASFContentInfo_GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore) (This)->lpVtbl->GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore)
  322. #else
  323. /*** IUnknown methods ***/
  324. static FORCEINLINE HRESULT IMFASFContentInfo_QueryInterface(IMFASFContentInfo* This,REFIID riid,void **ppvObject) {
  325. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  326. }
  327. static FORCEINLINE ULONG IMFASFContentInfo_AddRef(IMFASFContentInfo* This) {
  328. return This->lpVtbl->AddRef(This);
  329. }
  330. static FORCEINLINE ULONG IMFASFContentInfo_Release(IMFASFContentInfo* This) {
  331. return This->lpVtbl->Release(This);
  332. }
  333. /*** IMFASFContentInfo methods ***/
  334. static FORCEINLINE HRESULT IMFASFContentInfo_GetHeaderSize(IMFASFContentInfo* This,IMFMediaBuffer *pIStartOfContent,QWORD *cbHeaderSize) {
  335. return This->lpVtbl->GetHeaderSize(This,pIStartOfContent,cbHeaderSize);
  336. }
  337. static FORCEINLINE HRESULT IMFASFContentInfo_ParseHeader(IMFASFContentInfo* This,IMFMediaBuffer *pIHeaderBuffer,QWORD cbOffsetWithinHeader) {
  338. return This->lpVtbl->ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader);
  339. }
  340. static FORCEINLINE HRESULT IMFASFContentInfo_GenerateHeader(IMFASFContentInfo* This,IMFMediaBuffer *pIHeader,DWORD *pcbHeader) {
  341. return This->lpVtbl->GenerateHeader(This,pIHeader,pcbHeader);
  342. }
  343. static FORCEINLINE HRESULT IMFASFContentInfo_GetProfile(IMFASFContentInfo* This,IMFASFProfile **ppIProfile) {
  344. return This->lpVtbl->GetProfile(This,ppIProfile);
  345. }
  346. static FORCEINLINE HRESULT IMFASFContentInfo_SetProfile(IMFASFContentInfo* This,IMFASFProfile *pIProfile) {
  347. return This->lpVtbl->SetProfile(This,pIProfile);
  348. }
  349. static FORCEINLINE HRESULT IMFASFContentInfo_GeneratePresentationDescriptor(IMFASFContentInfo* This,IMFPresentationDescriptor **ppIPresentationDescriptor) {
  350. return This->lpVtbl->GeneratePresentationDescriptor(This,ppIPresentationDescriptor);
  351. }
  352. static FORCEINLINE HRESULT IMFASFContentInfo_GetEncodingConfigurationPropertyStore(IMFASFContentInfo* This,WORD wStreamNumber,IPropertyStore **ppIStore) {
  353. return This->lpVtbl->GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore);
  354. }
  355. #endif
  356. #endif
  357. #endif
  358. #endif /* __IMFASFContentInfo_INTERFACE_DEFINED__ */
  359. /*****************************************************************************
  360. * IMFASFMutualExclusion interface
  361. */
  362. #ifndef __IMFASFMutualExclusion_INTERFACE_DEFINED__
  363. #define __IMFASFMutualExclusion_INTERFACE_DEFINED__
  364. DEFINE_GUID(IID_IMFASFMutualExclusion, 0x12558291, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab);
  365. #if defined(__cplusplus) && !defined(CINTERFACE)
  366. MIDL_INTERFACE("12558291-e399-11d5-bc2a-00b0d0f3f4ab")
  367. IMFASFMutualExclusion : public IUnknown
  368. {
  369. virtual HRESULT STDMETHODCALLTYPE GetType(
  370. GUID *pguidType) = 0;
  371. virtual HRESULT STDMETHODCALLTYPE SetType(
  372. REFGUID guidType) = 0;
  373. virtual HRESULT STDMETHODCALLTYPE GetRecordCount(
  374. DWORD *pdwRecordCount) = 0;
  375. virtual HRESULT STDMETHODCALLTYPE GetStreamsForRecord(
  376. DWORD dwRecordNumber,
  377. WORD *pwStreamNumArray,
  378. DWORD *pcStreams) = 0;
  379. virtual HRESULT STDMETHODCALLTYPE AddStreamForRecord(
  380. DWORD dwRecordNumber,
  381. WORD wStreamNumber) = 0;
  382. virtual HRESULT STDMETHODCALLTYPE RemoveStreamFromRecord(
  383. DWORD dwRecordNumber,
  384. WORD wStreamNumber) = 0;
  385. virtual HRESULT STDMETHODCALLTYPE RemoveRecord(
  386. DWORD dwRecordNumber) = 0;
  387. virtual HRESULT STDMETHODCALLTYPE AddRecord(
  388. DWORD *pdwRecordNumber) = 0;
  389. virtual HRESULT STDMETHODCALLTYPE Clone(
  390. IMFASFMutualExclusion **ppIMutex) = 0;
  391. };
  392. #ifdef __CRT_UUID_DECL
  393. __CRT_UUID_DECL(IMFASFMutualExclusion, 0x12558291, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab)
  394. #endif
  395. #else
  396. typedef struct IMFASFMutualExclusionVtbl {
  397. BEGIN_INTERFACE
  398. /*** IUnknown methods ***/
  399. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  400. IMFASFMutualExclusion *This,
  401. REFIID riid,
  402. void **ppvObject);
  403. ULONG (STDMETHODCALLTYPE *AddRef)(
  404. IMFASFMutualExclusion *This);
  405. ULONG (STDMETHODCALLTYPE *Release)(
  406. IMFASFMutualExclusion *This);
  407. /*** IMFASFMutualExclusion methods ***/
  408. HRESULT (STDMETHODCALLTYPE *GetType)(
  409. IMFASFMutualExclusion *This,
  410. GUID *pguidType);
  411. HRESULT (STDMETHODCALLTYPE *SetType)(
  412. IMFASFMutualExclusion *This,
  413. REFGUID guidType);
  414. HRESULT (STDMETHODCALLTYPE *GetRecordCount)(
  415. IMFASFMutualExclusion *This,
  416. DWORD *pdwRecordCount);
  417. HRESULT (STDMETHODCALLTYPE *GetStreamsForRecord)(
  418. IMFASFMutualExclusion *This,
  419. DWORD dwRecordNumber,
  420. WORD *pwStreamNumArray,
  421. DWORD *pcStreams);
  422. HRESULT (STDMETHODCALLTYPE *AddStreamForRecord)(
  423. IMFASFMutualExclusion *This,
  424. DWORD dwRecordNumber,
  425. WORD wStreamNumber);
  426. HRESULT (STDMETHODCALLTYPE *RemoveStreamFromRecord)(
  427. IMFASFMutualExclusion *This,
  428. DWORD dwRecordNumber,
  429. WORD wStreamNumber);
  430. HRESULT (STDMETHODCALLTYPE *RemoveRecord)(
  431. IMFASFMutualExclusion *This,
  432. DWORD dwRecordNumber);
  433. HRESULT (STDMETHODCALLTYPE *AddRecord)(
  434. IMFASFMutualExclusion *This,
  435. DWORD *pdwRecordNumber);
  436. HRESULT (STDMETHODCALLTYPE *Clone)(
  437. IMFASFMutualExclusion *This,
  438. IMFASFMutualExclusion **ppIMutex);
  439. END_INTERFACE
  440. } IMFASFMutualExclusionVtbl;
  441. interface IMFASFMutualExclusion {
  442. CONST_VTBL IMFASFMutualExclusionVtbl* lpVtbl;
  443. };
  444. #ifdef COBJMACROS
  445. #ifndef WIDL_C_INLINE_WRAPPERS
  446. /*** IUnknown methods ***/
  447. #define IMFASFMutualExclusion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  448. #define IMFASFMutualExclusion_AddRef(This) (This)->lpVtbl->AddRef(This)
  449. #define IMFASFMutualExclusion_Release(This) (This)->lpVtbl->Release(This)
  450. /*** IMFASFMutualExclusion methods ***/
  451. #define IMFASFMutualExclusion_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType)
  452. #define IMFASFMutualExclusion_SetType(This,guidType) (This)->lpVtbl->SetType(This,guidType)
  453. #define IMFASFMutualExclusion_GetRecordCount(This,pdwRecordCount) (This)->lpVtbl->GetRecordCount(This,pdwRecordCount)
  454. #define IMFASFMutualExclusion_GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams)
  455. #define IMFASFMutualExclusion_AddStreamForRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->AddStreamForRecord(This,dwRecordNumber,wStreamNumber)
  456. #define IMFASFMutualExclusion_RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber)
  457. #define IMFASFMutualExclusion_RemoveRecord(This,dwRecordNumber) (This)->lpVtbl->RemoveRecord(This,dwRecordNumber)
  458. #define IMFASFMutualExclusion_AddRecord(This,pdwRecordNumber) (This)->lpVtbl->AddRecord(This,pdwRecordNumber)
  459. #define IMFASFMutualExclusion_Clone(This,ppIMutex) (This)->lpVtbl->Clone(This,ppIMutex)
  460. #else
  461. /*** IUnknown methods ***/
  462. static FORCEINLINE HRESULT IMFASFMutualExclusion_QueryInterface(IMFASFMutualExclusion* This,REFIID riid,void **ppvObject) {
  463. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  464. }
  465. static FORCEINLINE ULONG IMFASFMutualExclusion_AddRef(IMFASFMutualExclusion* This) {
  466. return This->lpVtbl->AddRef(This);
  467. }
  468. static FORCEINLINE ULONG IMFASFMutualExclusion_Release(IMFASFMutualExclusion* This) {
  469. return This->lpVtbl->Release(This);
  470. }
  471. /*** IMFASFMutualExclusion methods ***/
  472. static FORCEINLINE HRESULT IMFASFMutualExclusion_GetType(IMFASFMutualExclusion* This,GUID *pguidType) {
  473. return This->lpVtbl->GetType(This,pguidType);
  474. }
  475. static FORCEINLINE HRESULT IMFASFMutualExclusion_SetType(IMFASFMutualExclusion* This,REFGUID guidType) {
  476. return This->lpVtbl->SetType(This,guidType);
  477. }
  478. static FORCEINLINE HRESULT IMFASFMutualExclusion_GetRecordCount(IMFASFMutualExclusion* This,DWORD *pdwRecordCount) {
  479. return This->lpVtbl->GetRecordCount(This,pdwRecordCount);
  480. }
  481. static FORCEINLINE HRESULT IMFASFMutualExclusion_GetStreamsForRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD *pwStreamNumArray,DWORD *pcStreams) {
  482. return This->lpVtbl->GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams);
  483. }
  484. static FORCEINLINE HRESULT IMFASFMutualExclusion_AddStreamForRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD wStreamNumber) {
  485. return This->lpVtbl->AddStreamForRecord(This,dwRecordNumber,wStreamNumber);
  486. }
  487. static FORCEINLINE HRESULT IMFASFMutualExclusion_RemoveStreamFromRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD wStreamNumber) {
  488. return This->lpVtbl->RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber);
  489. }
  490. static FORCEINLINE HRESULT IMFASFMutualExclusion_RemoveRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber) {
  491. return This->lpVtbl->RemoveRecord(This,dwRecordNumber);
  492. }
  493. static FORCEINLINE HRESULT IMFASFMutualExclusion_AddRecord(IMFASFMutualExclusion* This,DWORD *pdwRecordNumber) {
  494. return This->lpVtbl->AddRecord(This,pdwRecordNumber);
  495. }
  496. static FORCEINLINE HRESULT IMFASFMutualExclusion_Clone(IMFASFMutualExclusion* This,IMFASFMutualExclusion **ppIMutex) {
  497. return This->lpVtbl->Clone(This,ppIMutex);
  498. }
  499. #endif
  500. #endif
  501. #endif
  502. #endif /* __IMFASFMutualExclusion_INTERFACE_DEFINED__ */
  503. /*****************************************************************************
  504. * IMFASFStreamPrioritization interface
  505. */
  506. #ifndef __IMFASFStreamPrioritization_INTERFACE_DEFINED__
  507. #define __IMFASFStreamPrioritization_INTERFACE_DEFINED__
  508. DEFINE_GUID(IID_IMFASFStreamPrioritization, 0x699bdc27, 0xbbaf, 0x49ff, 0x8e,0x38, 0x9c,0x39,0xc9,0xb5,0xe0,0x88);
  509. #if defined(__cplusplus) && !defined(CINTERFACE)
  510. MIDL_INTERFACE("699bdc27-bbaf-49ff-8e38-9c39c9b5e088")
  511. IMFASFStreamPrioritization : public IUnknown
  512. {
  513. virtual HRESULT STDMETHODCALLTYPE GetStreamCount(
  514. DWORD *pdwStreamCount) = 0;
  515. virtual HRESULT STDMETHODCALLTYPE GetStream(
  516. DWORD dwStreamIndex,
  517. WORD *pwStreamNumber,
  518. WORD *pwStreamFlags) = 0;
  519. virtual HRESULT STDMETHODCALLTYPE AddStream(
  520. WORD wStreamNumber,
  521. WORD wStreamFlags) = 0;
  522. virtual HRESULT STDMETHODCALLTYPE RemoveStream(
  523. DWORD dwStreamIndex) = 0;
  524. virtual HRESULT STDMETHODCALLTYPE Clone(
  525. IMFASFStreamPrioritization **ppIStreamPrioritization) = 0;
  526. };
  527. #ifdef __CRT_UUID_DECL
  528. __CRT_UUID_DECL(IMFASFStreamPrioritization, 0x699bdc27, 0xbbaf, 0x49ff, 0x8e,0x38, 0x9c,0x39,0xc9,0xb5,0xe0,0x88)
  529. #endif
  530. #else
  531. typedef struct IMFASFStreamPrioritizationVtbl {
  532. BEGIN_INTERFACE
  533. /*** IUnknown methods ***/
  534. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  535. IMFASFStreamPrioritization *This,
  536. REFIID riid,
  537. void **ppvObject);
  538. ULONG (STDMETHODCALLTYPE *AddRef)(
  539. IMFASFStreamPrioritization *This);
  540. ULONG (STDMETHODCALLTYPE *Release)(
  541. IMFASFStreamPrioritization *This);
  542. /*** IMFASFStreamPrioritization methods ***/
  543. HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
  544. IMFASFStreamPrioritization *This,
  545. DWORD *pdwStreamCount);
  546. HRESULT (STDMETHODCALLTYPE *GetStream)(
  547. IMFASFStreamPrioritization *This,
  548. DWORD dwStreamIndex,
  549. WORD *pwStreamNumber,
  550. WORD *pwStreamFlags);
  551. HRESULT (STDMETHODCALLTYPE *AddStream)(
  552. IMFASFStreamPrioritization *This,
  553. WORD wStreamNumber,
  554. WORD wStreamFlags);
  555. HRESULT (STDMETHODCALLTYPE *RemoveStream)(
  556. IMFASFStreamPrioritization *This,
  557. DWORD dwStreamIndex);
  558. HRESULT (STDMETHODCALLTYPE *Clone)(
  559. IMFASFStreamPrioritization *This,
  560. IMFASFStreamPrioritization **ppIStreamPrioritization);
  561. END_INTERFACE
  562. } IMFASFStreamPrioritizationVtbl;
  563. interface IMFASFStreamPrioritization {
  564. CONST_VTBL IMFASFStreamPrioritizationVtbl* lpVtbl;
  565. };
  566. #ifdef COBJMACROS
  567. #ifndef WIDL_C_INLINE_WRAPPERS
  568. /*** IUnknown methods ***/
  569. #define IMFASFStreamPrioritization_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  570. #define IMFASFStreamPrioritization_AddRef(This) (This)->lpVtbl->AddRef(This)
  571. #define IMFASFStreamPrioritization_Release(This) (This)->lpVtbl->Release(This)
  572. /*** IMFASFStreamPrioritization methods ***/
  573. #define IMFASFStreamPrioritization_GetStreamCount(This,pdwStreamCount) (This)->lpVtbl->GetStreamCount(This,pdwStreamCount)
  574. #define IMFASFStreamPrioritization_GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags)
  575. #define IMFASFStreamPrioritization_AddStream(This,wStreamNumber,wStreamFlags) (This)->lpVtbl->AddStream(This,wStreamNumber,wStreamFlags)
  576. #define IMFASFStreamPrioritization_RemoveStream(This,dwStreamIndex) (This)->lpVtbl->RemoveStream(This,dwStreamIndex)
  577. #define IMFASFStreamPrioritization_Clone(This,ppIStreamPrioritization) (This)->lpVtbl->Clone(This,ppIStreamPrioritization)
  578. #else
  579. /*** IUnknown methods ***/
  580. static FORCEINLINE HRESULT IMFASFStreamPrioritization_QueryInterface(IMFASFStreamPrioritization* This,REFIID riid,void **ppvObject) {
  581. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  582. }
  583. static FORCEINLINE ULONG IMFASFStreamPrioritization_AddRef(IMFASFStreamPrioritization* This) {
  584. return This->lpVtbl->AddRef(This);
  585. }
  586. static FORCEINLINE ULONG IMFASFStreamPrioritization_Release(IMFASFStreamPrioritization* This) {
  587. return This->lpVtbl->Release(This);
  588. }
  589. /*** IMFASFStreamPrioritization methods ***/
  590. static FORCEINLINE HRESULT IMFASFStreamPrioritization_GetStreamCount(IMFASFStreamPrioritization* This,DWORD *pdwStreamCount) {
  591. return This->lpVtbl->GetStreamCount(This,pdwStreamCount);
  592. }
  593. static FORCEINLINE HRESULT IMFASFStreamPrioritization_GetStream(IMFASFStreamPrioritization* This,DWORD dwStreamIndex,WORD *pwStreamNumber,WORD *pwStreamFlags) {
  594. return This->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags);
  595. }
  596. static FORCEINLINE HRESULT IMFASFStreamPrioritization_AddStream(IMFASFStreamPrioritization* This,WORD wStreamNumber,WORD wStreamFlags) {
  597. return This->lpVtbl->AddStream(This,wStreamNumber,wStreamFlags);
  598. }
  599. static FORCEINLINE HRESULT IMFASFStreamPrioritization_RemoveStream(IMFASFStreamPrioritization* This,DWORD dwStreamIndex) {
  600. return This->lpVtbl->RemoveStream(This,dwStreamIndex);
  601. }
  602. static FORCEINLINE HRESULT IMFASFStreamPrioritization_Clone(IMFASFStreamPrioritization* This,IMFASFStreamPrioritization **ppIStreamPrioritization) {
  603. return This->lpVtbl->Clone(This,ppIStreamPrioritization);
  604. }
  605. #endif
  606. #endif
  607. #endif
  608. #endif /* __IMFASFStreamPrioritization_INTERFACE_DEFINED__ */
  609. /*****************************************************************************
  610. * IMFASFSplitter interface
  611. */
  612. #ifndef __IMFASFSplitter_INTERFACE_DEFINED__
  613. #define __IMFASFSplitter_INTERFACE_DEFINED__
  614. DEFINE_GUID(IID_IMFASFSplitter, 0x12558295, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab);
  615. #if defined(__cplusplus) && !defined(CINTERFACE)
  616. MIDL_INTERFACE("12558295-e399-11d5-bc2a-00b0d0f3f4ab")
  617. IMFASFSplitter : public IUnknown
  618. {
  619. virtual HRESULT STDMETHODCALLTYPE Initialize(
  620. IMFASFContentInfo *pIContentInfo) = 0;
  621. virtual HRESULT STDMETHODCALLTYPE SetFlags(
  622. DWORD dwFlags) = 0;
  623. virtual HRESULT STDMETHODCALLTYPE GetFlags(
  624. DWORD *pdwFlags) = 0;
  625. virtual HRESULT STDMETHODCALLTYPE SelectStreams(
  626. WORD *pwStreamNumbers,
  627. WORD wNumStreams) = 0;
  628. virtual HRESULT STDMETHODCALLTYPE GetSelectedStreams(
  629. WORD *pwStreamNumbers,
  630. WORD *pwNumStreams) = 0;
  631. virtual HRESULT STDMETHODCALLTYPE ParseData(
  632. IMFMediaBuffer *pIBuffer,
  633. DWORD cbBufferOffset,
  634. DWORD cbLength) = 0;
  635. virtual HRESULT STDMETHODCALLTYPE GetNextSample(
  636. DWORD *pdwStatusFlags,
  637. WORD *pwStreamNumber,
  638. IMFSample **ppISample) = 0;
  639. virtual HRESULT STDMETHODCALLTYPE Flush(
  640. ) = 0;
  641. virtual HRESULT STDMETHODCALLTYPE GetLastSendTime(
  642. DWORD *pdwLastSendTime) = 0;
  643. };
  644. #ifdef __CRT_UUID_DECL
  645. __CRT_UUID_DECL(IMFASFSplitter, 0x12558295, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab)
  646. #endif
  647. #else
  648. typedef struct IMFASFSplitterVtbl {
  649. BEGIN_INTERFACE
  650. /*** IUnknown methods ***/
  651. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  652. IMFASFSplitter *This,
  653. REFIID riid,
  654. void **ppvObject);
  655. ULONG (STDMETHODCALLTYPE *AddRef)(
  656. IMFASFSplitter *This);
  657. ULONG (STDMETHODCALLTYPE *Release)(
  658. IMFASFSplitter *This);
  659. /*** IMFASFSplitter methods ***/
  660. HRESULT (STDMETHODCALLTYPE *Initialize)(
  661. IMFASFSplitter *This,
  662. IMFASFContentInfo *pIContentInfo);
  663. HRESULT (STDMETHODCALLTYPE *SetFlags)(
  664. IMFASFSplitter *This,
  665. DWORD dwFlags);
  666. HRESULT (STDMETHODCALLTYPE *GetFlags)(
  667. IMFASFSplitter *This,
  668. DWORD *pdwFlags);
  669. HRESULT (STDMETHODCALLTYPE *SelectStreams)(
  670. IMFASFSplitter *This,
  671. WORD *pwStreamNumbers,
  672. WORD wNumStreams);
  673. HRESULT (STDMETHODCALLTYPE *GetSelectedStreams)(
  674. IMFASFSplitter *This,
  675. WORD *pwStreamNumbers,
  676. WORD *pwNumStreams);
  677. HRESULT (STDMETHODCALLTYPE *ParseData)(
  678. IMFASFSplitter *This,
  679. IMFMediaBuffer *pIBuffer,
  680. DWORD cbBufferOffset,
  681. DWORD cbLength);
  682. HRESULT (STDMETHODCALLTYPE *GetNextSample)(
  683. IMFASFSplitter *This,
  684. DWORD *pdwStatusFlags,
  685. WORD *pwStreamNumber,
  686. IMFSample **ppISample);
  687. HRESULT (STDMETHODCALLTYPE *Flush)(
  688. IMFASFSplitter *This);
  689. HRESULT (STDMETHODCALLTYPE *GetLastSendTime)(
  690. IMFASFSplitter *This,
  691. DWORD *pdwLastSendTime);
  692. END_INTERFACE
  693. } IMFASFSplitterVtbl;
  694. interface IMFASFSplitter {
  695. CONST_VTBL IMFASFSplitterVtbl* lpVtbl;
  696. };
  697. #ifdef COBJMACROS
  698. #ifndef WIDL_C_INLINE_WRAPPERS
  699. /*** IUnknown methods ***/
  700. #define IMFASFSplitter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  701. #define IMFASFSplitter_AddRef(This) (This)->lpVtbl->AddRef(This)
  702. #define IMFASFSplitter_Release(This) (This)->lpVtbl->Release(This)
  703. /*** IMFASFSplitter methods ***/
  704. #define IMFASFSplitter_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo)
  705. #define IMFASFSplitter_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
  706. #define IMFASFSplitter_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
  707. #define IMFASFSplitter_SelectStreams(This,pwStreamNumbers,wNumStreams) (This)->lpVtbl->SelectStreams(This,pwStreamNumbers,wNumStreams)
  708. #define IMFASFSplitter_GetSelectedStreams(This,pwStreamNumbers,pwNumStreams) (This)->lpVtbl->GetSelectedStreams(This,pwStreamNumbers,pwNumStreams)
  709. #define IMFASFSplitter_ParseData(This,pIBuffer,cbBufferOffset,cbLength) (This)->lpVtbl->ParseData(This,pIBuffer,cbBufferOffset,cbLength)
  710. #define IMFASFSplitter_GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample) (This)->lpVtbl->GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample)
  711. #define IMFASFSplitter_Flush(This) (This)->lpVtbl->Flush(This)
  712. #define IMFASFSplitter_GetLastSendTime(This,pdwLastSendTime) (This)->lpVtbl->GetLastSendTime(This,pdwLastSendTime)
  713. #else
  714. /*** IUnknown methods ***/
  715. static FORCEINLINE HRESULT IMFASFSplitter_QueryInterface(IMFASFSplitter* This,REFIID riid,void **ppvObject) {
  716. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  717. }
  718. static FORCEINLINE ULONG IMFASFSplitter_AddRef(IMFASFSplitter* This) {
  719. return This->lpVtbl->AddRef(This);
  720. }
  721. static FORCEINLINE ULONG IMFASFSplitter_Release(IMFASFSplitter* This) {
  722. return This->lpVtbl->Release(This);
  723. }
  724. /*** IMFASFSplitter methods ***/
  725. static FORCEINLINE HRESULT IMFASFSplitter_Initialize(IMFASFSplitter* This,IMFASFContentInfo *pIContentInfo) {
  726. return This->lpVtbl->Initialize(This,pIContentInfo);
  727. }
  728. static FORCEINLINE HRESULT IMFASFSplitter_SetFlags(IMFASFSplitter* This,DWORD dwFlags) {
  729. return This->lpVtbl->SetFlags(This,dwFlags);
  730. }
  731. static FORCEINLINE HRESULT IMFASFSplitter_GetFlags(IMFASFSplitter* This,DWORD *pdwFlags) {
  732. return This->lpVtbl->GetFlags(This,pdwFlags);
  733. }
  734. static FORCEINLINE HRESULT IMFASFSplitter_SelectStreams(IMFASFSplitter* This,WORD *pwStreamNumbers,WORD wNumStreams) {
  735. return This->lpVtbl->SelectStreams(This,pwStreamNumbers,wNumStreams);
  736. }
  737. static FORCEINLINE HRESULT IMFASFSplitter_GetSelectedStreams(IMFASFSplitter* This,WORD *pwStreamNumbers,WORD *pwNumStreams) {
  738. return This->lpVtbl->GetSelectedStreams(This,pwStreamNumbers,pwNumStreams);
  739. }
  740. static FORCEINLINE HRESULT IMFASFSplitter_ParseData(IMFASFSplitter* This,IMFMediaBuffer *pIBuffer,DWORD cbBufferOffset,DWORD cbLength) {
  741. return This->lpVtbl->ParseData(This,pIBuffer,cbBufferOffset,cbLength);
  742. }
  743. static FORCEINLINE HRESULT IMFASFSplitter_GetNextSample(IMFASFSplitter* This,DWORD *pdwStatusFlags,WORD *pwStreamNumber,IMFSample **ppISample) {
  744. return This->lpVtbl->GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample);
  745. }
  746. static FORCEINLINE HRESULT IMFASFSplitter_Flush(IMFASFSplitter* This) {
  747. return This->lpVtbl->Flush(This);
  748. }
  749. static FORCEINLINE HRESULT IMFASFSplitter_GetLastSendTime(IMFASFSplitter* This,DWORD *pdwLastSendTime) {
  750. return This->lpVtbl->GetLastSendTime(This,pdwLastSendTime);
  751. }
  752. #endif
  753. #endif
  754. #endif
  755. #endif /* __IMFASFSplitter_INTERFACE_DEFINED__ */
  756. /*****************************************************************************
  757. * IMFASFMultiplexer interface
  758. */
  759. #ifndef __IMFASFMultiplexer_INTERFACE_DEFINED__
  760. #define __IMFASFMultiplexer_INTERFACE_DEFINED__
  761. DEFINE_GUID(IID_IMFASFMultiplexer, 0x57bdd80a, 0x9b38, 0x4838, 0xb7,0x37, 0xc5,0x8f,0x67,0x0d,0x7d,0x4f);
  762. #if defined(__cplusplus) && !defined(CINTERFACE)
  763. MIDL_INTERFACE("57bdd80a-9b38-4838-b737-c58f670d7d4f")
  764. IMFASFMultiplexer : public IUnknown
  765. {
  766. virtual HRESULT STDMETHODCALLTYPE Initialize(
  767. IMFASFContentInfo *pIContentInfo) = 0;
  768. virtual HRESULT STDMETHODCALLTYPE SetFlags(
  769. DWORD dwFlags) = 0;
  770. virtual HRESULT STDMETHODCALLTYPE GetFlags(
  771. DWORD *pdwFlags) = 0;
  772. virtual HRESULT STDMETHODCALLTYPE ProcessSample(
  773. WORD wStreamNumber,
  774. IMFSample *pISample,
  775. LONGLONG hnsTimestampAdjust) = 0;
  776. virtual HRESULT STDMETHODCALLTYPE GetNextPacket(
  777. DWORD *pdwStatusFlags,
  778. IMFSample **ppIPacket) = 0;
  779. virtual HRESULT STDMETHODCALLTYPE Flush(
  780. ) = 0;
  781. virtual HRESULT STDMETHODCALLTYPE End(
  782. IMFASFContentInfo *pIContentInfo) = 0;
  783. virtual HRESULT STDMETHODCALLTYPE GetStatistics(
  784. WORD wStreamNumber,
  785. ASF_MUX_STATISTICS *pMuxStats) = 0;
  786. virtual HRESULT STDMETHODCALLTYPE SetSyncTolerance(
  787. DWORD msSyncTolerance) = 0;
  788. };
  789. #ifdef __CRT_UUID_DECL
  790. __CRT_UUID_DECL(IMFASFMultiplexer, 0x57bdd80a, 0x9b38, 0x4838, 0xb7,0x37, 0xc5,0x8f,0x67,0x0d,0x7d,0x4f)
  791. #endif
  792. #else
  793. typedef struct IMFASFMultiplexerVtbl {
  794. BEGIN_INTERFACE
  795. /*** IUnknown methods ***/
  796. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  797. IMFASFMultiplexer *This,
  798. REFIID riid,
  799. void **ppvObject);
  800. ULONG (STDMETHODCALLTYPE *AddRef)(
  801. IMFASFMultiplexer *This);
  802. ULONG (STDMETHODCALLTYPE *Release)(
  803. IMFASFMultiplexer *This);
  804. /*** IMFASFMultiplexer methods ***/
  805. HRESULT (STDMETHODCALLTYPE *Initialize)(
  806. IMFASFMultiplexer *This,
  807. IMFASFContentInfo *pIContentInfo);
  808. HRESULT (STDMETHODCALLTYPE *SetFlags)(
  809. IMFASFMultiplexer *This,
  810. DWORD dwFlags);
  811. HRESULT (STDMETHODCALLTYPE *GetFlags)(
  812. IMFASFMultiplexer *This,
  813. DWORD *pdwFlags);
  814. HRESULT (STDMETHODCALLTYPE *ProcessSample)(
  815. IMFASFMultiplexer *This,
  816. WORD wStreamNumber,
  817. IMFSample *pISample,
  818. LONGLONG hnsTimestampAdjust);
  819. HRESULT (STDMETHODCALLTYPE *GetNextPacket)(
  820. IMFASFMultiplexer *This,
  821. DWORD *pdwStatusFlags,
  822. IMFSample **ppIPacket);
  823. HRESULT (STDMETHODCALLTYPE *Flush)(
  824. IMFASFMultiplexer *This);
  825. HRESULT (STDMETHODCALLTYPE *End)(
  826. IMFASFMultiplexer *This,
  827. IMFASFContentInfo *pIContentInfo);
  828. HRESULT (STDMETHODCALLTYPE *GetStatistics)(
  829. IMFASFMultiplexer *This,
  830. WORD wStreamNumber,
  831. ASF_MUX_STATISTICS *pMuxStats);
  832. HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)(
  833. IMFASFMultiplexer *This,
  834. DWORD msSyncTolerance);
  835. END_INTERFACE
  836. } IMFASFMultiplexerVtbl;
  837. interface IMFASFMultiplexer {
  838. CONST_VTBL IMFASFMultiplexerVtbl* lpVtbl;
  839. };
  840. #ifdef COBJMACROS
  841. #ifndef WIDL_C_INLINE_WRAPPERS
  842. /*** IUnknown methods ***/
  843. #define IMFASFMultiplexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  844. #define IMFASFMultiplexer_AddRef(This) (This)->lpVtbl->AddRef(This)
  845. #define IMFASFMultiplexer_Release(This) (This)->lpVtbl->Release(This)
  846. /*** IMFASFMultiplexer methods ***/
  847. #define IMFASFMultiplexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo)
  848. #define IMFASFMultiplexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
  849. #define IMFASFMultiplexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
  850. #define IMFASFMultiplexer_ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust) (This)->lpVtbl->ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust)
  851. #define IMFASFMultiplexer_GetNextPacket(This,pdwStatusFlags,ppIPacket) (This)->lpVtbl->GetNextPacket(This,pdwStatusFlags,ppIPacket)
  852. #define IMFASFMultiplexer_Flush(This) (This)->lpVtbl->Flush(This)
  853. #define IMFASFMultiplexer_End(This,pIContentInfo) (This)->lpVtbl->End(This,pIContentInfo)
  854. #define IMFASFMultiplexer_GetStatistics(This,wStreamNumber,pMuxStats) (This)->lpVtbl->GetStatistics(This,wStreamNumber,pMuxStats)
  855. #define IMFASFMultiplexer_SetSyncTolerance(This,msSyncTolerance) (This)->lpVtbl->SetSyncTolerance(This,msSyncTolerance)
  856. #else
  857. /*** IUnknown methods ***/
  858. static FORCEINLINE HRESULT IMFASFMultiplexer_QueryInterface(IMFASFMultiplexer* This,REFIID riid,void **ppvObject) {
  859. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  860. }
  861. static FORCEINLINE ULONG IMFASFMultiplexer_AddRef(IMFASFMultiplexer* This) {
  862. return This->lpVtbl->AddRef(This);
  863. }
  864. static FORCEINLINE ULONG IMFASFMultiplexer_Release(IMFASFMultiplexer* This) {
  865. return This->lpVtbl->Release(This);
  866. }
  867. /*** IMFASFMultiplexer methods ***/
  868. static FORCEINLINE HRESULT IMFASFMultiplexer_Initialize(IMFASFMultiplexer* This,IMFASFContentInfo *pIContentInfo) {
  869. return This->lpVtbl->Initialize(This,pIContentInfo);
  870. }
  871. static FORCEINLINE HRESULT IMFASFMultiplexer_SetFlags(IMFASFMultiplexer* This,DWORD dwFlags) {
  872. return This->lpVtbl->SetFlags(This,dwFlags);
  873. }
  874. static FORCEINLINE HRESULT IMFASFMultiplexer_GetFlags(IMFASFMultiplexer* This,DWORD *pdwFlags) {
  875. return This->lpVtbl->GetFlags(This,pdwFlags);
  876. }
  877. static FORCEINLINE HRESULT IMFASFMultiplexer_ProcessSample(IMFASFMultiplexer* This,WORD wStreamNumber,IMFSample *pISample,LONGLONG hnsTimestampAdjust) {
  878. return This->lpVtbl->ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust);
  879. }
  880. static FORCEINLINE HRESULT IMFASFMultiplexer_GetNextPacket(IMFASFMultiplexer* This,DWORD *pdwStatusFlags,IMFSample **ppIPacket) {
  881. return This->lpVtbl->GetNextPacket(This,pdwStatusFlags,ppIPacket);
  882. }
  883. static FORCEINLINE HRESULT IMFASFMultiplexer_Flush(IMFASFMultiplexer* This) {
  884. return This->lpVtbl->Flush(This);
  885. }
  886. static FORCEINLINE HRESULT IMFASFMultiplexer_End(IMFASFMultiplexer* This,IMFASFContentInfo *pIContentInfo) {
  887. return This->lpVtbl->End(This,pIContentInfo);
  888. }
  889. static FORCEINLINE HRESULT IMFASFMultiplexer_GetStatistics(IMFASFMultiplexer* This,WORD wStreamNumber,ASF_MUX_STATISTICS *pMuxStats) {
  890. return This->lpVtbl->GetStatistics(This,wStreamNumber,pMuxStats);
  891. }
  892. static FORCEINLINE HRESULT IMFASFMultiplexer_SetSyncTolerance(IMFASFMultiplexer* This,DWORD msSyncTolerance) {
  893. return This->lpVtbl->SetSyncTolerance(This,msSyncTolerance);
  894. }
  895. #endif
  896. #endif
  897. #endif
  898. #endif /* __IMFASFMultiplexer_INTERFACE_DEFINED__ */
  899. /*****************************************************************************
  900. * IMFASFIndexer interface
  901. */
  902. #ifndef __IMFASFIndexer_INTERFACE_DEFINED__
  903. #define __IMFASFIndexer_INTERFACE_DEFINED__
  904. DEFINE_GUID(IID_IMFASFIndexer, 0x53590f48, 0xdc3b, 0x4297, 0x81,0x3f, 0x78,0x77,0x61,0xad,0x7b,0x3e);
  905. #if defined(__cplusplus) && !defined(CINTERFACE)
  906. MIDL_INTERFACE("53590f48-dc3b-4297-813f-787761ad7b3e")
  907. IMFASFIndexer : public IUnknown
  908. {
  909. virtual HRESULT STDMETHODCALLTYPE SetFlags(
  910. DWORD dwFlags) = 0;
  911. virtual HRESULT STDMETHODCALLTYPE GetFlags(
  912. DWORD *pdwFlags) = 0;
  913. virtual HRESULT STDMETHODCALLTYPE Initialize(
  914. IMFASFContentInfo *pIContentInfo) = 0;
  915. virtual HRESULT STDMETHODCALLTYPE GetIndexPosition(
  916. IMFASFContentInfo *pIContentInfo,
  917. QWORD *pcbIndexOffset) = 0;
  918. virtual HRESULT STDMETHODCALLTYPE SetIndexByteStreams(
  919. IMFByteStream **ppIByteStreams,
  920. DWORD cByteStreams) = 0;
  921. virtual HRESULT STDMETHODCALLTYPE GetIndexByteStreamCount(
  922. DWORD *pcByteStreams) = 0;
  923. virtual HRESULT STDMETHODCALLTYPE GetIndexStatus(
  924. ASF_INDEX_IDENTIFIER *pIndexIdentifier,
  925. WINBOOL *pfIsIndexed,
  926. BYTE *pbIndexDescriptor,
  927. DWORD *pcbIndexDescriptor) = 0;
  928. virtual HRESULT STDMETHODCALLTYPE SetIndexStatus(
  929. BYTE *pbIndexDescriptor,
  930. DWORD cbIndexDescriptor,
  931. WINBOOL fGenerateIndex) = 0;
  932. virtual HRESULT STDMETHODCALLTYPE GetSeekPositionForValue(
  933. const PROPVARIANT *pvarValue,
  934. ASF_INDEX_IDENTIFIER *pIndexIdentifier,
  935. QWORD *pcbOffsetWithinData,
  936. MFTIME *phnsApproxTime,
  937. DWORD *pdwPayloadNumberOfStreamWithinPacket) = 0;
  938. virtual HRESULT STDMETHODCALLTYPE GenerateIndexEntries(
  939. IMFSample *pIASFPacketSample) = 0;
  940. virtual HRESULT STDMETHODCALLTYPE CommitIndex(
  941. IMFASFContentInfo *pIContentInfo) = 0;
  942. virtual HRESULT STDMETHODCALLTYPE GetIndexWriteSpace(
  943. QWORD *pcbIndexWriteSpace) = 0;
  944. virtual HRESULT STDMETHODCALLTYPE GetCompletedIndex(
  945. IMFMediaBuffer *pIIndexBuffer,
  946. QWORD cbOffsetWithinIndex) = 0;
  947. };
  948. #ifdef __CRT_UUID_DECL
  949. __CRT_UUID_DECL(IMFASFIndexer, 0x53590f48, 0xdc3b, 0x4297, 0x81,0x3f, 0x78,0x77,0x61,0xad,0x7b,0x3e)
  950. #endif
  951. #else
  952. typedef struct IMFASFIndexerVtbl {
  953. BEGIN_INTERFACE
  954. /*** IUnknown methods ***/
  955. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  956. IMFASFIndexer *This,
  957. REFIID riid,
  958. void **ppvObject);
  959. ULONG (STDMETHODCALLTYPE *AddRef)(
  960. IMFASFIndexer *This);
  961. ULONG (STDMETHODCALLTYPE *Release)(
  962. IMFASFIndexer *This);
  963. /*** IMFASFIndexer methods ***/
  964. HRESULT (STDMETHODCALLTYPE *SetFlags)(
  965. IMFASFIndexer *This,
  966. DWORD dwFlags);
  967. HRESULT (STDMETHODCALLTYPE *GetFlags)(
  968. IMFASFIndexer *This,
  969. DWORD *pdwFlags);
  970. HRESULT (STDMETHODCALLTYPE *Initialize)(
  971. IMFASFIndexer *This,
  972. IMFASFContentInfo *pIContentInfo);
  973. HRESULT (STDMETHODCALLTYPE *GetIndexPosition)(
  974. IMFASFIndexer *This,
  975. IMFASFContentInfo *pIContentInfo,
  976. QWORD *pcbIndexOffset);
  977. HRESULT (STDMETHODCALLTYPE *SetIndexByteStreams)(
  978. IMFASFIndexer *This,
  979. IMFByteStream **ppIByteStreams,
  980. DWORD cByteStreams);
  981. HRESULT (STDMETHODCALLTYPE *GetIndexByteStreamCount)(
  982. IMFASFIndexer *This,
  983. DWORD *pcByteStreams);
  984. HRESULT (STDMETHODCALLTYPE *GetIndexStatus)(
  985. IMFASFIndexer *This,
  986. ASF_INDEX_IDENTIFIER *pIndexIdentifier,
  987. WINBOOL *pfIsIndexed,
  988. BYTE *pbIndexDescriptor,
  989. DWORD *pcbIndexDescriptor);
  990. HRESULT (STDMETHODCALLTYPE *SetIndexStatus)(
  991. IMFASFIndexer *This,
  992. BYTE *pbIndexDescriptor,
  993. DWORD cbIndexDescriptor,
  994. WINBOOL fGenerateIndex);
  995. HRESULT (STDMETHODCALLTYPE *GetSeekPositionForValue)(
  996. IMFASFIndexer *This,
  997. const PROPVARIANT *pvarValue,
  998. ASF_INDEX_IDENTIFIER *pIndexIdentifier,
  999. QWORD *pcbOffsetWithinData,
  1000. MFTIME *phnsApproxTime,
  1001. DWORD *pdwPayloadNumberOfStreamWithinPacket);
  1002. HRESULT (STDMETHODCALLTYPE *GenerateIndexEntries)(
  1003. IMFASFIndexer *This,
  1004. IMFSample *pIASFPacketSample);
  1005. HRESULT (STDMETHODCALLTYPE *CommitIndex)(
  1006. IMFASFIndexer *This,
  1007. IMFASFContentInfo *pIContentInfo);
  1008. HRESULT (STDMETHODCALLTYPE *GetIndexWriteSpace)(
  1009. IMFASFIndexer *This,
  1010. QWORD *pcbIndexWriteSpace);
  1011. HRESULT (STDMETHODCALLTYPE *GetCompletedIndex)(
  1012. IMFASFIndexer *This,
  1013. IMFMediaBuffer *pIIndexBuffer,
  1014. QWORD cbOffsetWithinIndex);
  1015. END_INTERFACE
  1016. } IMFASFIndexerVtbl;
  1017. interface IMFASFIndexer {
  1018. CONST_VTBL IMFASFIndexerVtbl* lpVtbl;
  1019. };
  1020. #ifdef COBJMACROS
  1021. #ifndef WIDL_C_INLINE_WRAPPERS
  1022. /*** IUnknown methods ***/
  1023. #define IMFASFIndexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1024. #define IMFASFIndexer_AddRef(This) (This)->lpVtbl->AddRef(This)
  1025. #define IMFASFIndexer_Release(This) (This)->lpVtbl->Release(This)
  1026. /*** IMFASFIndexer methods ***/
  1027. #define IMFASFIndexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
  1028. #define IMFASFIndexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
  1029. #define IMFASFIndexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo)
  1030. #define IMFASFIndexer_GetIndexPosition(This,pIContentInfo,pcbIndexOffset) (This)->lpVtbl->GetIndexPosition(This,pIContentInfo,pcbIndexOffset)
  1031. #define IMFASFIndexer_SetIndexByteStreams(This,ppIByteStreams,cByteStreams) (This)->lpVtbl->SetIndexByteStreams(This,ppIByteStreams,cByteStreams)
  1032. #define IMFASFIndexer_GetIndexByteStreamCount(This,pcByteStreams) (This)->lpVtbl->GetIndexByteStreamCount(This,pcByteStreams)
  1033. #define IMFASFIndexer_GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor) (This)->lpVtbl->GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor)
  1034. #define IMFASFIndexer_SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex) (This)->lpVtbl->SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex)
  1035. #define IMFASFIndexer_GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket) (This)->lpVtbl->GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket)
  1036. #define IMFASFIndexer_GenerateIndexEntries(This,pIASFPacketSample) (This)->lpVtbl->GenerateIndexEntries(This,pIASFPacketSample)
  1037. #define IMFASFIndexer_CommitIndex(This,pIContentInfo) (This)->lpVtbl->CommitIndex(This,pIContentInfo)
  1038. #define IMFASFIndexer_GetIndexWriteSpace(This,pcbIndexWriteSpace) (This)->lpVtbl->GetIndexWriteSpace(This,pcbIndexWriteSpace)
  1039. #define IMFASFIndexer_GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex) (This)->lpVtbl->GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex)
  1040. #else
  1041. /*** IUnknown methods ***/
  1042. static FORCEINLINE HRESULT IMFASFIndexer_QueryInterface(IMFASFIndexer* This,REFIID riid,void **ppvObject) {
  1043. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1044. }
  1045. static FORCEINLINE ULONG IMFASFIndexer_AddRef(IMFASFIndexer* This) {
  1046. return This->lpVtbl->AddRef(This);
  1047. }
  1048. static FORCEINLINE ULONG IMFASFIndexer_Release(IMFASFIndexer* This) {
  1049. return This->lpVtbl->Release(This);
  1050. }
  1051. /*** IMFASFIndexer methods ***/
  1052. static FORCEINLINE HRESULT IMFASFIndexer_SetFlags(IMFASFIndexer* This,DWORD dwFlags) {
  1053. return This->lpVtbl->SetFlags(This,dwFlags);
  1054. }
  1055. static FORCEINLINE HRESULT IMFASFIndexer_GetFlags(IMFASFIndexer* This,DWORD *pdwFlags) {
  1056. return This->lpVtbl->GetFlags(This,pdwFlags);
  1057. }
  1058. static FORCEINLINE HRESULT IMFASFIndexer_Initialize(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo) {
  1059. return This->lpVtbl->Initialize(This,pIContentInfo);
  1060. }
  1061. static FORCEINLINE HRESULT IMFASFIndexer_GetIndexPosition(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo,QWORD *pcbIndexOffset) {
  1062. return This->lpVtbl->GetIndexPosition(This,pIContentInfo,pcbIndexOffset);
  1063. }
  1064. static FORCEINLINE HRESULT IMFASFIndexer_SetIndexByteStreams(IMFASFIndexer* This,IMFByteStream **ppIByteStreams,DWORD cByteStreams) {
  1065. return This->lpVtbl->SetIndexByteStreams(This,ppIByteStreams,cByteStreams);
  1066. }
  1067. static FORCEINLINE HRESULT IMFASFIndexer_GetIndexByteStreamCount(IMFASFIndexer* This,DWORD *pcByteStreams) {
  1068. return This->lpVtbl->GetIndexByteStreamCount(This,pcByteStreams);
  1069. }
  1070. static FORCEINLINE HRESULT IMFASFIndexer_GetIndexStatus(IMFASFIndexer* This,ASF_INDEX_IDENTIFIER *pIndexIdentifier,WINBOOL *pfIsIndexed,BYTE *pbIndexDescriptor,DWORD *pcbIndexDescriptor) {
  1071. return This->lpVtbl->GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor);
  1072. }
  1073. static FORCEINLINE HRESULT IMFASFIndexer_SetIndexStatus(IMFASFIndexer* This,BYTE *pbIndexDescriptor,DWORD cbIndexDescriptor,WINBOOL fGenerateIndex) {
  1074. return This->lpVtbl->SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex);
  1075. }
  1076. static FORCEINLINE HRESULT IMFASFIndexer_GetSeekPositionForValue(IMFASFIndexer* This,const PROPVARIANT *pvarValue,ASF_INDEX_IDENTIFIER *pIndexIdentifier,QWORD *pcbOffsetWithinData,MFTIME *phnsApproxTime,DWORD *pdwPayloadNumberOfStreamWithinPacket) {
  1077. return This->lpVtbl->GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket);
  1078. }
  1079. static FORCEINLINE HRESULT IMFASFIndexer_GenerateIndexEntries(IMFASFIndexer* This,IMFSample *pIASFPacketSample) {
  1080. return This->lpVtbl->GenerateIndexEntries(This,pIASFPacketSample);
  1081. }
  1082. static FORCEINLINE HRESULT IMFASFIndexer_CommitIndex(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo) {
  1083. return This->lpVtbl->CommitIndex(This,pIContentInfo);
  1084. }
  1085. static FORCEINLINE HRESULT IMFASFIndexer_GetIndexWriteSpace(IMFASFIndexer* This,QWORD *pcbIndexWriteSpace) {
  1086. return This->lpVtbl->GetIndexWriteSpace(This,pcbIndexWriteSpace);
  1087. }
  1088. static FORCEINLINE HRESULT IMFASFIndexer_GetCompletedIndex(IMFASFIndexer* This,IMFMediaBuffer *pIIndexBuffer,QWORD cbOffsetWithinIndex) {
  1089. return This->lpVtbl->GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex);
  1090. }
  1091. #endif
  1092. #endif
  1093. #endif
  1094. #endif /* __IMFASFIndexer_INTERFACE_DEFINED__ */
  1095. /*****************************************************************************
  1096. * IMFASFStreamSelector interface
  1097. */
  1098. #ifndef __IMFASFStreamSelector_INTERFACE_DEFINED__
  1099. #define __IMFASFStreamSelector_INTERFACE_DEFINED__
  1100. DEFINE_GUID(IID_IMFASFStreamSelector, 0xd01bad4a, 0x4fa0, 0x4a60, 0x93,0x49, 0xc2,0x7e,0x62,0xda,0x9d,0x41);
  1101. #if defined(__cplusplus) && !defined(CINTERFACE)
  1102. MIDL_INTERFACE("d01bad4a-4fa0-4a60-9349-c27e62da9d41")
  1103. IMFASFStreamSelector : public IUnknown
  1104. {
  1105. virtual HRESULT STDMETHODCALLTYPE GetStreamCount(
  1106. DWORD *pcStreams) = 0;
  1107. virtual HRESULT STDMETHODCALLTYPE GetOutputCount(
  1108. DWORD *pcOutputs) = 0;
  1109. virtual HRESULT STDMETHODCALLTYPE GetOutputStreamCount(
  1110. DWORD dwOutputNum,
  1111. DWORD *pcStreams) = 0;
  1112. virtual HRESULT STDMETHODCALLTYPE GetOutputStreamNumbers(
  1113. DWORD dwOutputNum,
  1114. WORD *rgwStreamNumbers) = 0;
  1115. virtual HRESULT STDMETHODCALLTYPE GetOutputFromStream(
  1116. WORD wStreamNum,
  1117. DWORD *pdwOutput) = 0;
  1118. virtual HRESULT STDMETHODCALLTYPE GetOutputOverride(
  1119. DWORD dwOutputNum,
  1120. ASF_SELECTION_STATUS *pSelection) = 0;
  1121. virtual HRESULT STDMETHODCALLTYPE SetOutputOverride(
  1122. DWORD dwOutputNum,
  1123. ASF_SELECTION_STATUS Selection) = 0;
  1124. virtual HRESULT STDMETHODCALLTYPE GetOutputMutexCount(
  1125. DWORD dwOutputNum,
  1126. DWORD *pcMutexes) = 0;
  1127. virtual HRESULT STDMETHODCALLTYPE GetOutputMutex(
  1128. DWORD dwOutputNum,
  1129. DWORD dwMutexNum,
  1130. IUnknown **ppMutex) = 0;
  1131. virtual HRESULT STDMETHODCALLTYPE SetOutputMutexSelection(
  1132. DWORD dwOutputNum,
  1133. DWORD dwMutexNum,
  1134. WORD wSelectedRecord) = 0;
  1135. virtual HRESULT STDMETHODCALLTYPE GetBandwidthStepCount(
  1136. DWORD *pcStepCount) = 0;
  1137. virtual HRESULT STDMETHODCALLTYPE GetBandwidthStep(
  1138. DWORD dwStepNum,
  1139. DWORD *pdwBitrate,
  1140. WORD *rgwStreamNumbers,
  1141. ASF_SELECTION_STATUS *rgSelections) = 0;
  1142. virtual HRESULT STDMETHODCALLTYPE BitrateToStepNumber(
  1143. DWORD dwBitrate,
  1144. DWORD *pdwStepNum) = 0;
  1145. virtual HRESULT STDMETHODCALLTYPE SetStreamSelectorFlags(
  1146. DWORD dwStreamSelectorFlags) = 0;
  1147. };
  1148. #ifdef __CRT_UUID_DECL
  1149. __CRT_UUID_DECL(IMFASFStreamSelector, 0xd01bad4a, 0x4fa0, 0x4a60, 0x93,0x49, 0xc2,0x7e,0x62,0xda,0x9d,0x41)
  1150. #endif
  1151. #else
  1152. typedef struct IMFASFStreamSelectorVtbl {
  1153. BEGIN_INTERFACE
  1154. /*** IUnknown methods ***/
  1155. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1156. IMFASFStreamSelector *This,
  1157. REFIID riid,
  1158. void **ppvObject);
  1159. ULONG (STDMETHODCALLTYPE *AddRef)(
  1160. IMFASFStreamSelector *This);
  1161. ULONG (STDMETHODCALLTYPE *Release)(
  1162. IMFASFStreamSelector *This);
  1163. /*** IMFASFStreamSelector methods ***/
  1164. HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
  1165. IMFASFStreamSelector *This,
  1166. DWORD *pcStreams);
  1167. HRESULT (STDMETHODCALLTYPE *GetOutputCount)(
  1168. IMFASFStreamSelector *This,
  1169. DWORD *pcOutputs);
  1170. HRESULT (STDMETHODCALLTYPE *GetOutputStreamCount)(
  1171. IMFASFStreamSelector *This,
  1172. DWORD dwOutputNum,
  1173. DWORD *pcStreams);
  1174. HRESULT (STDMETHODCALLTYPE *GetOutputStreamNumbers)(
  1175. IMFASFStreamSelector *This,
  1176. DWORD dwOutputNum,
  1177. WORD *rgwStreamNumbers);
  1178. HRESULT (STDMETHODCALLTYPE *GetOutputFromStream)(
  1179. IMFASFStreamSelector *This,
  1180. WORD wStreamNum,
  1181. DWORD *pdwOutput);
  1182. HRESULT (STDMETHODCALLTYPE *GetOutputOverride)(
  1183. IMFASFStreamSelector *This,
  1184. DWORD dwOutputNum,
  1185. ASF_SELECTION_STATUS *pSelection);
  1186. HRESULT (STDMETHODCALLTYPE *SetOutputOverride)(
  1187. IMFASFStreamSelector *This,
  1188. DWORD dwOutputNum,
  1189. ASF_SELECTION_STATUS Selection);
  1190. HRESULT (STDMETHODCALLTYPE *GetOutputMutexCount)(
  1191. IMFASFStreamSelector *This,
  1192. DWORD dwOutputNum,
  1193. DWORD *pcMutexes);
  1194. HRESULT (STDMETHODCALLTYPE *GetOutputMutex)(
  1195. IMFASFStreamSelector *This,
  1196. DWORD dwOutputNum,
  1197. DWORD dwMutexNum,
  1198. IUnknown **ppMutex);
  1199. HRESULT (STDMETHODCALLTYPE *SetOutputMutexSelection)(
  1200. IMFASFStreamSelector *This,
  1201. DWORD dwOutputNum,
  1202. DWORD dwMutexNum,
  1203. WORD wSelectedRecord);
  1204. HRESULT (STDMETHODCALLTYPE *GetBandwidthStepCount)(
  1205. IMFASFStreamSelector *This,
  1206. DWORD *pcStepCount);
  1207. HRESULT (STDMETHODCALLTYPE *GetBandwidthStep)(
  1208. IMFASFStreamSelector *This,
  1209. DWORD dwStepNum,
  1210. DWORD *pdwBitrate,
  1211. WORD *rgwStreamNumbers,
  1212. ASF_SELECTION_STATUS *rgSelections);
  1213. HRESULT (STDMETHODCALLTYPE *BitrateToStepNumber)(
  1214. IMFASFStreamSelector *This,
  1215. DWORD dwBitrate,
  1216. DWORD *pdwStepNum);
  1217. HRESULT (STDMETHODCALLTYPE *SetStreamSelectorFlags)(
  1218. IMFASFStreamSelector *This,
  1219. DWORD dwStreamSelectorFlags);
  1220. END_INTERFACE
  1221. } IMFASFStreamSelectorVtbl;
  1222. interface IMFASFStreamSelector {
  1223. CONST_VTBL IMFASFStreamSelectorVtbl* lpVtbl;
  1224. };
  1225. #ifdef COBJMACROS
  1226. #ifndef WIDL_C_INLINE_WRAPPERS
  1227. /*** IUnknown methods ***/
  1228. #define IMFASFStreamSelector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1229. #define IMFASFStreamSelector_AddRef(This) (This)->lpVtbl->AddRef(This)
  1230. #define IMFASFStreamSelector_Release(This) (This)->lpVtbl->Release(This)
  1231. /*** IMFASFStreamSelector methods ***/
  1232. #define IMFASFStreamSelector_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams)
  1233. #define IMFASFStreamSelector_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs)
  1234. #define IMFASFStreamSelector_GetOutputStreamCount(This,dwOutputNum,pcStreams) (This)->lpVtbl->GetOutputStreamCount(This,dwOutputNum,pcStreams)
  1235. #define IMFASFStreamSelector_GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers) (This)->lpVtbl->GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers)
  1236. #define IMFASFStreamSelector_GetOutputFromStream(This,wStreamNum,pdwOutput) (This)->lpVtbl->GetOutputFromStream(This,wStreamNum,pdwOutput)
  1237. #define IMFASFStreamSelector_GetOutputOverride(This,dwOutputNum,pSelection) (This)->lpVtbl->GetOutputOverride(This,dwOutputNum,pSelection)
  1238. #define IMFASFStreamSelector_SetOutputOverride(This,dwOutputNum,Selection) (This)->lpVtbl->SetOutputOverride(This,dwOutputNum,Selection)
  1239. #define IMFASFStreamSelector_GetOutputMutexCount(This,dwOutputNum,pcMutexes) (This)->lpVtbl->GetOutputMutexCount(This,dwOutputNum,pcMutexes)
  1240. #define IMFASFStreamSelector_GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex) (This)->lpVtbl->GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex)
  1241. #define IMFASFStreamSelector_SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord) (This)->lpVtbl->SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord)
  1242. #define IMFASFStreamSelector_GetBandwidthStepCount(This,pcStepCount) (This)->lpVtbl->GetBandwidthStepCount(This,pcStepCount)
  1243. #define IMFASFStreamSelector_GetBandwidthStep(This,dwStepNum,pdwBitrate,rgwStreamNumbers,rgSelections) (This)->lpVtbl->GetBandwidthStep(This,dwStepNum,pdwBitrate,rgwStreamNumbers,rgSelections)
  1244. #define IMFASFStreamSelector_BitrateToStepNumber(This,dwBitrate,pdwStepNum) (This)->lpVtbl->BitrateToStepNumber(This,dwBitrate,pdwStepNum)
  1245. #define IMFASFStreamSelector_SetStreamSelectorFlags(This,dwStreamSelectorFlags) (This)->lpVtbl->SetStreamSelectorFlags(This,dwStreamSelectorFlags)
  1246. #else
  1247. /*** IUnknown methods ***/
  1248. static FORCEINLINE HRESULT IMFASFStreamSelector_QueryInterface(IMFASFStreamSelector* This,REFIID riid,void **ppvObject) {
  1249. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1250. }
  1251. static FORCEINLINE ULONG IMFASFStreamSelector_AddRef(IMFASFStreamSelector* This) {
  1252. return This->lpVtbl->AddRef(This);
  1253. }
  1254. static FORCEINLINE ULONG IMFASFStreamSelector_Release(IMFASFStreamSelector* This) {
  1255. return This->lpVtbl->Release(This);
  1256. }
  1257. /*** IMFASFStreamSelector methods ***/
  1258. static FORCEINLINE HRESULT IMFASFStreamSelector_GetStreamCount(IMFASFStreamSelector* This,DWORD *pcStreams) {
  1259. return This->lpVtbl->GetStreamCount(This,pcStreams);
  1260. }
  1261. static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputCount(IMFASFStreamSelector* This,DWORD *pcOutputs) {
  1262. return This->lpVtbl->GetOutputCount(This,pcOutputs);
  1263. }
  1264. static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputStreamCount(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD *pcStreams) {
  1265. return This->lpVtbl->GetOutputStreamCount(This,dwOutputNum,pcStreams);
  1266. }
  1267. static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputStreamNumbers(IMFASFStreamSelector* This,DWORD dwOutputNum,WORD *rgwStreamNumbers) {
  1268. return This->lpVtbl->GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers);
  1269. }
  1270. static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputFromStream(IMFASFStreamSelector* This,WORD wStreamNum,DWORD *pdwOutput) {
  1271. return This->lpVtbl->GetOutputFromStream(This,wStreamNum,pdwOutput);
  1272. }
  1273. static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputOverride(IMFASFStreamSelector* This,DWORD dwOutputNum,ASF_SELECTION_STATUS *pSelection) {
  1274. return This->lpVtbl->GetOutputOverride(This,dwOutputNum,pSelection);
  1275. }
  1276. static FORCEINLINE HRESULT IMFASFStreamSelector_SetOutputOverride(IMFASFStreamSelector* This,DWORD dwOutputNum,ASF_SELECTION_STATUS Selection) {
  1277. return This->lpVtbl->SetOutputOverride(This,dwOutputNum,Selection);
  1278. }
  1279. static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputMutexCount(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD *pcMutexes) {
  1280. return This->lpVtbl->GetOutputMutexCount(This,dwOutputNum,pcMutexes);
  1281. }
  1282. static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputMutex(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD dwMutexNum,IUnknown **ppMutex) {
  1283. return This->lpVtbl->GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex);
  1284. }
  1285. static FORCEINLINE HRESULT IMFASFStreamSelector_SetOutputMutexSelection(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD dwMutexNum,WORD wSelectedRecord) {
  1286. return This->lpVtbl->SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord);
  1287. }
  1288. static FORCEINLINE HRESULT IMFASFStreamSelector_GetBandwidthStepCount(IMFASFStreamSelector* This,DWORD *pcStepCount) {
  1289. return This->lpVtbl->GetBandwidthStepCount(This,pcStepCount);
  1290. }
  1291. static FORCEINLINE HRESULT IMFASFStreamSelector_GetBandwidthStep(IMFASFStreamSelector* This,DWORD dwStepNum,DWORD *pdwBitrate,WORD *rgwStreamNumbers,ASF_SELECTION_STATUS *rgSelections) {
  1292. return This->lpVtbl->GetBandwidthStep(This,dwStepNum,pdwBitrate,rgwStreamNumbers,rgSelections);
  1293. }
  1294. static FORCEINLINE HRESULT IMFASFStreamSelector_BitrateToStepNumber(IMFASFStreamSelector* This,DWORD dwBitrate,DWORD *pdwStepNum) {
  1295. return This->lpVtbl->BitrateToStepNumber(This,dwBitrate,pdwStepNum);
  1296. }
  1297. static FORCEINLINE HRESULT IMFASFStreamSelector_SetStreamSelectorFlags(IMFASFStreamSelector* This,DWORD dwStreamSelectorFlags) {
  1298. return This->lpVtbl->SetStreamSelectorFlags(This,dwStreamSelectorFlags);
  1299. }
  1300. #endif
  1301. #endif
  1302. #endif
  1303. #endif /* __IMFASFStreamSelector_INTERFACE_DEFINED__ */
  1304. #if WINVER >= 0x0601
  1305. /*****************************************************************************
  1306. * IMFDRMNetHelper interface
  1307. */
  1308. #ifndef __IMFDRMNetHelper_INTERFACE_DEFINED__
  1309. #define __IMFDRMNetHelper_INTERFACE_DEFINED__
  1310. DEFINE_GUID(IID_IMFDRMNetHelper, 0x3d1ff0ea, 0x679a, 0x4190, 0x8d,0x46, 0x7f,0xa6,0x9e,0x8c,0x7e,0x15);
  1311. #if defined(__cplusplus) && !defined(CINTERFACE)
  1312. MIDL_INTERFACE("3d1ff0ea-679a-4190-8d46-7fa69e8c7e15")
  1313. IMFDRMNetHelper : public IUnknown
  1314. {
  1315. virtual HRESULT STDMETHODCALLTYPE ProcessLicenseRequest(
  1316. BYTE *pLicenseRequest,
  1317. DWORD cbLicenseRequest,
  1318. BYTE **ppLicenseResponse,
  1319. DWORD *pcbLicenseResponse,
  1320. BSTR *pbstrKID) = 0;
  1321. virtual HRESULT STDMETHODCALLTYPE GetChainedLicenseResponse(
  1322. BYTE **ppLicenseResponse,
  1323. DWORD *pcbLicenseResponse) = 0;
  1324. };
  1325. #ifdef __CRT_UUID_DECL
  1326. __CRT_UUID_DECL(IMFDRMNetHelper, 0x3d1ff0ea, 0x679a, 0x4190, 0x8d,0x46, 0x7f,0xa6,0x9e,0x8c,0x7e,0x15)
  1327. #endif
  1328. #else
  1329. typedef struct IMFDRMNetHelperVtbl {
  1330. BEGIN_INTERFACE
  1331. /*** IUnknown methods ***/
  1332. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1333. IMFDRMNetHelper *This,
  1334. REFIID riid,
  1335. void **ppvObject);
  1336. ULONG (STDMETHODCALLTYPE *AddRef)(
  1337. IMFDRMNetHelper *This);
  1338. ULONG (STDMETHODCALLTYPE *Release)(
  1339. IMFDRMNetHelper *This);
  1340. /*** IMFDRMNetHelper methods ***/
  1341. HRESULT (STDMETHODCALLTYPE *ProcessLicenseRequest)(
  1342. IMFDRMNetHelper *This,
  1343. BYTE *pLicenseRequest,
  1344. DWORD cbLicenseRequest,
  1345. BYTE **ppLicenseResponse,
  1346. DWORD *pcbLicenseResponse,
  1347. BSTR *pbstrKID);
  1348. HRESULT (STDMETHODCALLTYPE *GetChainedLicenseResponse)(
  1349. IMFDRMNetHelper *This,
  1350. BYTE **ppLicenseResponse,
  1351. DWORD *pcbLicenseResponse);
  1352. END_INTERFACE
  1353. } IMFDRMNetHelperVtbl;
  1354. interface IMFDRMNetHelper {
  1355. CONST_VTBL IMFDRMNetHelperVtbl* lpVtbl;
  1356. };
  1357. #ifdef COBJMACROS
  1358. #ifndef WIDL_C_INLINE_WRAPPERS
  1359. /*** IUnknown methods ***/
  1360. #define IMFDRMNetHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1361. #define IMFDRMNetHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
  1362. #define IMFDRMNetHelper_Release(This) (This)->lpVtbl->Release(This)
  1363. /*** IMFDRMNetHelper methods ***/
  1364. #define IMFDRMNetHelper_ProcessLicenseRequest(This,pLicenseRequest,cbLicenseRequest,ppLicenseResponse,pcbLicenseResponse,pbstrKID) (This)->lpVtbl->ProcessLicenseRequest(This,pLicenseRequest,cbLicenseRequest,ppLicenseResponse,pcbLicenseResponse,pbstrKID)
  1365. #define IMFDRMNetHelper_GetChainedLicenseResponse(This,ppLicenseResponse,pcbLicenseResponse) (This)->lpVtbl->GetChainedLicenseResponse(This,ppLicenseResponse,pcbLicenseResponse)
  1366. #else
  1367. /*** IUnknown methods ***/
  1368. static FORCEINLINE HRESULT IMFDRMNetHelper_QueryInterface(IMFDRMNetHelper* This,REFIID riid,void **ppvObject) {
  1369. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1370. }
  1371. static FORCEINLINE ULONG IMFDRMNetHelper_AddRef(IMFDRMNetHelper* This) {
  1372. return This->lpVtbl->AddRef(This);
  1373. }
  1374. static FORCEINLINE ULONG IMFDRMNetHelper_Release(IMFDRMNetHelper* This) {
  1375. return This->lpVtbl->Release(This);
  1376. }
  1377. /*** IMFDRMNetHelper methods ***/
  1378. static FORCEINLINE HRESULT IMFDRMNetHelper_ProcessLicenseRequest(IMFDRMNetHelper* This,BYTE *pLicenseRequest,DWORD cbLicenseRequest,BYTE **ppLicenseResponse,DWORD *pcbLicenseResponse,BSTR *pbstrKID) {
  1379. return This->lpVtbl->ProcessLicenseRequest(This,pLicenseRequest,cbLicenseRequest,ppLicenseResponse,pcbLicenseResponse,pbstrKID);
  1380. }
  1381. static FORCEINLINE HRESULT IMFDRMNetHelper_GetChainedLicenseResponse(IMFDRMNetHelper* This,BYTE **ppLicenseResponse,DWORD *pcbLicenseResponse) {
  1382. return This->lpVtbl->GetChainedLicenseResponse(This,ppLicenseResponse,pcbLicenseResponse);
  1383. }
  1384. #endif
  1385. #endif
  1386. #endif
  1387. #endif /* __IMFDRMNetHelper_INTERFACE_DEFINED__ */
  1388. #endif
  1389. /*****************************************************************************
  1390. * IMFASFProfile interface
  1391. */
  1392. #ifndef __IMFASFProfile_INTERFACE_DEFINED__
  1393. #define __IMFASFProfile_INTERFACE_DEFINED__
  1394. DEFINE_GUID(IID_IMFASFProfile, 0xd267bf6a, 0x028b, 0x4e0d, 0x90,0x3d, 0x43,0xf0,0xef,0x82,0xd0,0xd4);
  1395. #if defined(__cplusplus) && !defined(CINTERFACE)
  1396. MIDL_INTERFACE("d267bf6a-028b-4e0d-903d-43f0ef82d0d4")
  1397. IMFASFProfile : public IMFAttributes
  1398. {
  1399. virtual HRESULT STDMETHODCALLTYPE GetStreamCount(
  1400. DWORD *pcStreams) = 0;
  1401. virtual HRESULT STDMETHODCALLTYPE GetStream(
  1402. DWORD dwStreamIndex,
  1403. WORD *pwStreamNumber,
  1404. IMFASFStreamConfig **ppIStream) = 0;
  1405. virtual HRESULT STDMETHODCALLTYPE GetStreamByNumber(
  1406. WORD wStreamNumber,
  1407. IMFASFStreamConfig **ppIStream) = 0;
  1408. virtual HRESULT STDMETHODCALLTYPE SetStream(
  1409. IMFASFStreamConfig *pIStream) = 0;
  1410. virtual HRESULT STDMETHODCALLTYPE RemoveStream(
  1411. WORD wStreamNumber) = 0;
  1412. virtual HRESULT STDMETHODCALLTYPE CreateStream(
  1413. IMFMediaType *pIMediaType,
  1414. IMFASFStreamConfig **ppIStream) = 0;
  1415. virtual HRESULT STDMETHODCALLTYPE GetMutualExclusionCount(
  1416. DWORD *pcMutexs) = 0;
  1417. virtual HRESULT STDMETHODCALLTYPE GetMutualExclusion(
  1418. DWORD dwMutexIndex,
  1419. IMFASFMutualExclusion **ppIMutex) = 0;
  1420. virtual HRESULT STDMETHODCALLTYPE AddMutualExclusion(
  1421. IMFASFMutualExclusion *pIMutex) = 0;
  1422. virtual HRESULT STDMETHODCALLTYPE RemoveMutualExclusion(
  1423. DWORD dwMutexIndex) = 0;
  1424. virtual HRESULT STDMETHODCALLTYPE CreateMutualExclusion(
  1425. IMFASFMutualExclusion **ppIMutex) = 0;
  1426. virtual HRESULT STDMETHODCALLTYPE GetStreamPrioritization(
  1427. IMFASFStreamPrioritization **ppIStreamPrioritization) = 0;
  1428. virtual HRESULT STDMETHODCALLTYPE AddStreamPrioritization(
  1429. IMFASFStreamPrioritization *pIStreamPrioritization) = 0;
  1430. virtual HRESULT STDMETHODCALLTYPE RemoveStreamPrioritization(
  1431. ) = 0;
  1432. virtual HRESULT STDMETHODCALLTYPE CreateStreamPrioritization(
  1433. IMFASFStreamPrioritization **ppIStreamPrioritization) = 0;
  1434. virtual HRESULT STDMETHODCALLTYPE Clone(
  1435. IMFASFProfile **ppIProfile) = 0;
  1436. };
  1437. #ifdef __CRT_UUID_DECL
  1438. __CRT_UUID_DECL(IMFASFProfile, 0xd267bf6a, 0x028b, 0x4e0d, 0x90,0x3d, 0x43,0xf0,0xef,0x82,0xd0,0xd4)
  1439. #endif
  1440. #else
  1441. typedef struct IMFASFProfileVtbl {
  1442. BEGIN_INTERFACE
  1443. /*** IUnknown methods ***/
  1444. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1445. IMFASFProfile *This,
  1446. REFIID riid,
  1447. void **ppvObject);
  1448. ULONG (STDMETHODCALLTYPE *AddRef)(
  1449. IMFASFProfile *This);
  1450. ULONG (STDMETHODCALLTYPE *Release)(
  1451. IMFASFProfile *This);
  1452. /*** IMFAttributes methods ***/
  1453. HRESULT (STDMETHODCALLTYPE *GetItem)(
  1454. IMFASFProfile *This,
  1455. REFGUID guidKey,
  1456. PROPVARIANT *pValue);
  1457. HRESULT (STDMETHODCALLTYPE *GetItemType)(
  1458. IMFASFProfile *This,
  1459. REFGUID guidKey,
  1460. MF_ATTRIBUTE_TYPE *pType);
  1461. HRESULT (STDMETHODCALLTYPE *CompareItem)(
  1462. IMFASFProfile *This,
  1463. REFGUID guidKey,
  1464. REFPROPVARIANT Value,
  1465. WINBOOL *pbResult);
  1466. HRESULT (STDMETHODCALLTYPE *Compare)(
  1467. IMFASFProfile *This,
  1468. IMFAttributes *pTheirs,
  1469. MF_ATTRIBUTES_MATCH_TYPE MatchType,
  1470. WINBOOL *pbResult);
  1471. HRESULT (STDMETHODCALLTYPE *GetUINT32)(
  1472. IMFASFProfile *This,
  1473. REFGUID guidKey,
  1474. UINT32 *punValue);
  1475. HRESULT (STDMETHODCALLTYPE *GetUINT64)(
  1476. IMFASFProfile *This,
  1477. REFGUID guidKey,
  1478. UINT64 *punValue);
  1479. HRESULT (STDMETHODCALLTYPE *GetDouble)(
  1480. IMFASFProfile *This,
  1481. REFGUID guidKey,
  1482. double *pfValue);
  1483. HRESULT (STDMETHODCALLTYPE *GetGUID)(
  1484. IMFASFProfile *This,
  1485. REFGUID guidKey,
  1486. GUID *pguidValue);
  1487. HRESULT (STDMETHODCALLTYPE *GetStringLength)(
  1488. IMFASFProfile *This,
  1489. REFGUID guidKey,
  1490. UINT32 *pcchLength);
  1491. HRESULT (STDMETHODCALLTYPE *GetString)(
  1492. IMFASFProfile *This,
  1493. REFGUID guidKey,
  1494. LPWSTR pwszValue,
  1495. UINT32 cchBufSize,
  1496. UINT32 *pcchLength);
  1497. HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
  1498. IMFASFProfile *This,
  1499. REFGUID guidKey,
  1500. LPWSTR *ppwszValue,
  1501. UINT32 *pcchLength);
  1502. HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
  1503. IMFASFProfile *This,
  1504. REFGUID guidKey,
  1505. UINT32 *pcbBlobSize);
  1506. HRESULT (STDMETHODCALLTYPE *GetBlob)(
  1507. IMFASFProfile *This,
  1508. REFGUID guidKey,
  1509. UINT8 *pBuf,
  1510. UINT32 cbBufSize,
  1511. UINT32 *pcbBlobSize);
  1512. HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
  1513. IMFASFProfile *This,
  1514. REFGUID guidKey,
  1515. UINT8 **ppBuf,
  1516. UINT32 *pcbSize);
  1517. HRESULT (STDMETHODCALLTYPE *GetUnknown)(
  1518. IMFASFProfile *This,
  1519. REFGUID guidKey,
  1520. REFIID riid,
  1521. LPVOID *ppv);
  1522. HRESULT (STDMETHODCALLTYPE *SetItem)(
  1523. IMFASFProfile *This,
  1524. REFGUID guidKey,
  1525. REFPROPVARIANT Value);
  1526. HRESULT (STDMETHODCALLTYPE *DeleteItem)(
  1527. IMFASFProfile *This,
  1528. REFGUID guidKey);
  1529. HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
  1530. IMFASFProfile *This);
  1531. HRESULT (STDMETHODCALLTYPE *SetUINT32)(
  1532. IMFASFProfile *This,
  1533. REFGUID guidKey,
  1534. UINT32 unValue);
  1535. HRESULT (STDMETHODCALLTYPE *SetUINT64)(
  1536. IMFASFProfile *This,
  1537. REFGUID guidKey,
  1538. UINT64 unValue);
  1539. HRESULT (STDMETHODCALLTYPE *SetDouble)(
  1540. IMFASFProfile *This,
  1541. REFGUID guidKey,
  1542. double fValue);
  1543. HRESULT (STDMETHODCALLTYPE *SetGUID)(
  1544. IMFASFProfile *This,
  1545. REFGUID guidKey,
  1546. REFGUID guidValue);
  1547. HRESULT (STDMETHODCALLTYPE *SetString)(
  1548. IMFASFProfile *This,
  1549. REFGUID guidKey,
  1550. LPCWSTR wszValue);
  1551. HRESULT (STDMETHODCALLTYPE *SetBlob)(
  1552. IMFASFProfile *This,
  1553. REFGUID guidKey,
  1554. const UINT8 *pBuf,
  1555. UINT32 cbBufSize);
  1556. HRESULT (STDMETHODCALLTYPE *SetUnknown)(
  1557. IMFASFProfile *This,
  1558. REFGUID guidKey,
  1559. IUnknown *pUnknown);
  1560. HRESULT (STDMETHODCALLTYPE *LockStore)(
  1561. IMFASFProfile *This);
  1562. HRESULT (STDMETHODCALLTYPE *UnlockStore)(
  1563. IMFASFProfile *This);
  1564. HRESULT (STDMETHODCALLTYPE *GetCount)(
  1565. IMFASFProfile *This,
  1566. UINT32 *pcItems);
  1567. HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
  1568. IMFASFProfile *This,
  1569. UINT32 unIndex,
  1570. GUID *pguidKey,
  1571. PROPVARIANT *pValue);
  1572. HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
  1573. IMFASFProfile *This,
  1574. IMFAttributes *pDest);
  1575. /*** IMFASFProfile methods ***/
  1576. HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
  1577. IMFASFProfile *This,
  1578. DWORD *pcStreams);
  1579. HRESULT (STDMETHODCALLTYPE *GetStream)(
  1580. IMFASFProfile *This,
  1581. DWORD dwStreamIndex,
  1582. WORD *pwStreamNumber,
  1583. IMFASFStreamConfig **ppIStream);
  1584. HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)(
  1585. IMFASFProfile *This,
  1586. WORD wStreamNumber,
  1587. IMFASFStreamConfig **ppIStream);
  1588. HRESULT (STDMETHODCALLTYPE *SetStream)(
  1589. IMFASFProfile *This,
  1590. IMFASFStreamConfig *pIStream);
  1591. HRESULT (STDMETHODCALLTYPE *RemoveStream)(
  1592. IMFASFProfile *This,
  1593. WORD wStreamNumber);
  1594. HRESULT (STDMETHODCALLTYPE *CreateStream)(
  1595. IMFASFProfile *This,
  1596. IMFMediaType *pIMediaType,
  1597. IMFASFStreamConfig **ppIStream);
  1598. HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)(
  1599. IMFASFProfile *This,
  1600. DWORD *pcMutexs);
  1601. HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)(
  1602. IMFASFProfile *This,
  1603. DWORD dwMutexIndex,
  1604. IMFASFMutualExclusion **ppIMutex);
  1605. HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)(
  1606. IMFASFProfile *This,
  1607. IMFASFMutualExclusion *pIMutex);
  1608. HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)(
  1609. IMFASFProfile *This,
  1610. DWORD dwMutexIndex);
  1611. HRESULT (STDMETHODCALLTYPE *CreateMutualExclusion)(
  1612. IMFASFProfile *This,
  1613. IMFASFMutualExclusion **ppIMutex);
  1614. HRESULT (STDMETHODCALLTYPE *GetStreamPrioritization)(
  1615. IMFASFProfile *This,
  1616. IMFASFStreamPrioritization **ppIStreamPrioritization);
  1617. HRESULT (STDMETHODCALLTYPE *AddStreamPrioritization)(
  1618. IMFASFProfile *This,
  1619. IMFASFStreamPrioritization *pIStreamPrioritization);
  1620. HRESULT (STDMETHODCALLTYPE *RemoveStreamPrioritization)(
  1621. IMFASFProfile *This);
  1622. HRESULT (STDMETHODCALLTYPE *CreateStreamPrioritization)(
  1623. IMFASFProfile *This,
  1624. IMFASFStreamPrioritization **ppIStreamPrioritization);
  1625. HRESULT (STDMETHODCALLTYPE *Clone)(
  1626. IMFASFProfile *This,
  1627. IMFASFProfile **ppIProfile);
  1628. END_INTERFACE
  1629. } IMFASFProfileVtbl;
  1630. interface IMFASFProfile {
  1631. CONST_VTBL IMFASFProfileVtbl* lpVtbl;
  1632. };
  1633. #ifdef COBJMACROS
  1634. #ifndef WIDL_C_INLINE_WRAPPERS
  1635. /*** IUnknown methods ***/
  1636. #define IMFASFProfile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1637. #define IMFASFProfile_AddRef(This) (This)->lpVtbl->AddRef(This)
  1638. #define IMFASFProfile_Release(This) (This)->lpVtbl->Release(This)
  1639. /*** IMFAttributes methods ***/
  1640. #define IMFASFProfile_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
  1641. #define IMFASFProfile_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
  1642. #define IMFASFProfile_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
  1643. #define IMFASFProfile_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
  1644. #define IMFASFProfile_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
  1645. #define IMFASFProfile_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
  1646. #define IMFASFProfile_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
  1647. #define IMFASFProfile_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
  1648. #define IMFASFProfile_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
  1649. #define IMFASFProfile_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
  1650. #define IMFASFProfile_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
  1651. #define IMFASFProfile_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
  1652. #define IMFASFProfile_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
  1653. #define IMFASFProfile_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
  1654. #define IMFASFProfile_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
  1655. #define IMFASFProfile_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
  1656. #define IMFASFProfile_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
  1657. #define IMFASFProfile_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
  1658. #define IMFASFProfile_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
  1659. #define IMFASFProfile_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
  1660. #define IMFASFProfile_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
  1661. #define IMFASFProfile_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
  1662. #define IMFASFProfile_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
  1663. #define IMFASFProfile_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
  1664. #define IMFASFProfile_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
  1665. #define IMFASFProfile_LockStore(This) (This)->lpVtbl->LockStore(This)
  1666. #define IMFASFProfile_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
  1667. #define IMFASFProfile_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
  1668. #define IMFASFProfile_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
  1669. #define IMFASFProfile_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
  1670. /*** IMFASFProfile methods ***/
  1671. #define IMFASFProfile_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams)
  1672. #define IMFASFProfile_GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream)
  1673. #define IMFASFProfile_GetStreamByNumber(This,wStreamNumber,ppIStream) (This)->lpVtbl->GetStreamByNumber(This,wStreamNumber,ppIStream)
  1674. #define IMFASFProfile_SetStream(This,pIStream) (This)->lpVtbl->SetStream(This,pIStream)
  1675. #define IMFASFProfile_RemoveStream(This,wStreamNumber) (This)->lpVtbl->RemoveStream(This,wStreamNumber)
  1676. #define IMFASFProfile_CreateStream(This,pIMediaType,ppIStream) (This)->lpVtbl->CreateStream(This,pIMediaType,ppIStream)
  1677. #define IMFASFProfile_GetMutualExclusionCount(This,pcMutexs) (This)->lpVtbl->GetMutualExclusionCount(This,pcMutexs)
  1678. #define IMFASFProfile_GetMutualExclusion(This,dwMutexIndex,ppIMutex) (This)->lpVtbl->GetMutualExclusion(This,dwMutexIndex,ppIMutex)
  1679. #define IMFASFProfile_AddMutualExclusion(This,pIMutex) (This)->lpVtbl->AddMutualExclusion(This,pIMutex)
  1680. #define IMFASFProfile_RemoveMutualExclusion(This,dwMutexIndex) (This)->lpVtbl->RemoveMutualExclusion(This,dwMutexIndex)
  1681. #define IMFASFProfile_CreateMutualExclusion(This,ppIMutex) (This)->lpVtbl->CreateMutualExclusion(This,ppIMutex)
  1682. #define IMFASFProfile_GetStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->GetStreamPrioritization(This,ppIStreamPrioritization)
  1683. #define IMFASFProfile_AddStreamPrioritization(This,pIStreamPrioritization) (This)->lpVtbl->AddStreamPrioritization(This,pIStreamPrioritization)
  1684. #define IMFASFProfile_RemoveStreamPrioritization(This) (This)->lpVtbl->RemoveStreamPrioritization(This)
  1685. #define IMFASFProfile_CreateStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->CreateStreamPrioritization(This,ppIStreamPrioritization)
  1686. #define IMFASFProfile_Clone(This,ppIProfile) (This)->lpVtbl->Clone(This,ppIProfile)
  1687. #else
  1688. /*** IUnknown methods ***/
  1689. static FORCEINLINE HRESULT IMFASFProfile_QueryInterface(IMFASFProfile* This,REFIID riid,void **ppvObject) {
  1690. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1691. }
  1692. static FORCEINLINE ULONG IMFASFProfile_AddRef(IMFASFProfile* This) {
  1693. return This->lpVtbl->AddRef(This);
  1694. }
  1695. static FORCEINLINE ULONG IMFASFProfile_Release(IMFASFProfile* This) {
  1696. return This->lpVtbl->Release(This);
  1697. }
  1698. /*** IMFAttributes methods ***/
  1699. static FORCEINLINE HRESULT IMFASFProfile_GetItem(IMFASFProfile* This,REFGUID guidKey,PROPVARIANT *pValue) {
  1700. return This->lpVtbl->GetItem(This,guidKey,pValue);
  1701. }
  1702. static FORCEINLINE HRESULT IMFASFProfile_GetItemType(IMFASFProfile* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
  1703. return This->lpVtbl->GetItemType(This,guidKey,pType);
  1704. }
  1705. static FORCEINLINE HRESULT IMFASFProfile_CompareItem(IMFASFProfile* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
  1706. return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
  1707. }
  1708. static FORCEINLINE HRESULT IMFASFProfile_Compare(IMFASFProfile* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
  1709. return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
  1710. }
  1711. static FORCEINLINE HRESULT IMFASFProfile_GetUINT32(IMFASFProfile* This,REFGUID guidKey,UINT32 *punValue) {
  1712. return This->lpVtbl->GetUINT32(This,guidKey,punValue);
  1713. }
  1714. static FORCEINLINE HRESULT IMFASFProfile_GetUINT64(IMFASFProfile* This,REFGUID guidKey,UINT64 *punValue) {
  1715. return This->lpVtbl->GetUINT64(This,guidKey,punValue);
  1716. }
  1717. static FORCEINLINE HRESULT IMFASFProfile_GetDouble(IMFASFProfile* This,REFGUID guidKey,double *pfValue) {
  1718. return This->lpVtbl->GetDouble(This,guidKey,pfValue);
  1719. }
  1720. static FORCEINLINE HRESULT IMFASFProfile_GetGUID(IMFASFProfile* This,REFGUID guidKey,GUID *pguidValue) {
  1721. return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
  1722. }
  1723. static FORCEINLINE HRESULT IMFASFProfile_GetStringLength(IMFASFProfile* This,REFGUID guidKey,UINT32 *pcchLength) {
  1724. return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
  1725. }
  1726. static FORCEINLINE HRESULT IMFASFProfile_GetString(IMFASFProfile* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
  1727. return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
  1728. }
  1729. static FORCEINLINE HRESULT IMFASFProfile_GetAllocatedString(IMFASFProfile* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
  1730. return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
  1731. }
  1732. static FORCEINLINE HRESULT IMFASFProfile_GetBlobSize(IMFASFProfile* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
  1733. return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
  1734. }
  1735. static FORCEINLINE HRESULT IMFASFProfile_GetBlob(IMFASFProfile* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
  1736. return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
  1737. }
  1738. static FORCEINLINE HRESULT IMFASFProfile_GetAllocatedBlob(IMFASFProfile* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
  1739. return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
  1740. }
  1741. static FORCEINLINE HRESULT IMFASFProfile_GetUnknown(IMFASFProfile* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
  1742. return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
  1743. }
  1744. static FORCEINLINE HRESULT IMFASFProfile_SetItem(IMFASFProfile* This,REFGUID guidKey,REFPROPVARIANT Value) {
  1745. return This->lpVtbl->SetItem(This,guidKey,Value);
  1746. }
  1747. static FORCEINLINE HRESULT IMFASFProfile_DeleteItem(IMFASFProfile* This,REFGUID guidKey) {
  1748. return This->lpVtbl->DeleteItem(This,guidKey);
  1749. }
  1750. static FORCEINLINE HRESULT IMFASFProfile_DeleteAllItems(IMFASFProfile* This) {
  1751. return This->lpVtbl->DeleteAllItems(This);
  1752. }
  1753. static FORCEINLINE HRESULT IMFASFProfile_SetUINT32(IMFASFProfile* This,REFGUID guidKey,UINT32 unValue) {
  1754. return This->lpVtbl->SetUINT32(This,guidKey,unValue);
  1755. }
  1756. static FORCEINLINE HRESULT IMFASFProfile_SetUINT64(IMFASFProfile* This,REFGUID guidKey,UINT64 unValue) {
  1757. return This->lpVtbl->SetUINT64(This,guidKey,unValue);
  1758. }
  1759. static FORCEINLINE HRESULT IMFASFProfile_SetDouble(IMFASFProfile* This,REFGUID guidKey,double fValue) {
  1760. return This->lpVtbl->SetDouble(This,guidKey,fValue);
  1761. }
  1762. static FORCEINLINE HRESULT IMFASFProfile_SetGUID(IMFASFProfile* This,REFGUID guidKey,REFGUID guidValue) {
  1763. return This->lpVtbl->SetGUID(This,guidKey,guidValue);
  1764. }
  1765. static FORCEINLINE HRESULT IMFASFProfile_SetString(IMFASFProfile* This,REFGUID guidKey,LPCWSTR wszValue) {
  1766. return This->lpVtbl->SetString(This,guidKey,wszValue);
  1767. }
  1768. static FORCEINLINE HRESULT IMFASFProfile_SetBlob(IMFASFProfile* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
  1769. return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
  1770. }
  1771. static FORCEINLINE HRESULT IMFASFProfile_SetUnknown(IMFASFProfile* This,REFGUID guidKey,IUnknown *pUnknown) {
  1772. return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
  1773. }
  1774. static FORCEINLINE HRESULT IMFASFProfile_LockStore(IMFASFProfile* This) {
  1775. return This->lpVtbl->LockStore(This);
  1776. }
  1777. static FORCEINLINE HRESULT IMFASFProfile_UnlockStore(IMFASFProfile* This) {
  1778. return This->lpVtbl->UnlockStore(This);
  1779. }
  1780. static FORCEINLINE HRESULT IMFASFProfile_GetCount(IMFASFProfile* This,UINT32 *pcItems) {
  1781. return This->lpVtbl->GetCount(This,pcItems);
  1782. }
  1783. static FORCEINLINE HRESULT IMFASFProfile_GetItemByIndex(IMFASFProfile* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
  1784. return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
  1785. }
  1786. static FORCEINLINE HRESULT IMFASFProfile_CopyAllItems(IMFASFProfile* This,IMFAttributes *pDest) {
  1787. return This->lpVtbl->CopyAllItems(This,pDest);
  1788. }
  1789. /*** IMFASFProfile methods ***/
  1790. static FORCEINLINE HRESULT IMFASFProfile_GetStreamCount(IMFASFProfile* This,DWORD *pcStreams) {
  1791. return This->lpVtbl->GetStreamCount(This,pcStreams);
  1792. }
  1793. static FORCEINLINE HRESULT IMFASFProfile_GetStream(IMFASFProfile* This,DWORD dwStreamIndex,WORD *pwStreamNumber,IMFASFStreamConfig **ppIStream) {
  1794. return This->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream);
  1795. }
  1796. static FORCEINLINE HRESULT IMFASFProfile_GetStreamByNumber(IMFASFProfile* This,WORD wStreamNumber,IMFASFStreamConfig **ppIStream) {
  1797. return This->lpVtbl->GetStreamByNumber(This,wStreamNumber,ppIStream);
  1798. }
  1799. static FORCEINLINE HRESULT IMFASFProfile_SetStream(IMFASFProfile* This,IMFASFStreamConfig *pIStream) {
  1800. return This->lpVtbl->SetStream(This,pIStream);
  1801. }
  1802. static FORCEINLINE HRESULT IMFASFProfile_RemoveStream(IMFASFProfile* This,WORD wStreamNumber) {
  1803. return This->lpVtbl->RemoveStream(This,wStreamNumber);
  1804. }
  1805. static FORCEINLINE HRESULT IMFASFProfile_CreateStream(IMFASFProfile* This,IMFMediaType *pIMediaType,IMFASFStreamConfig **ppIStream) {
  1806. return This->lpVtbl->CreateStream(This,pIMediaType,ppIStream);
  1807. }
  1808. static FORCEINLINE HRESULT IMFASFProfile_GetMutualExclusionCount(IMFASFProfile* This,DWORD *pcMutexs) {
  1809. return This->lpVtbl->GetMutualExclusionCount(This,pcMutexs);
  1810. }
  1811. static FORCEINLINE HRESULT IMFASFProfile_GetMutualExclusion(IMFASFProfile* This,DWORD dwMutexIndex,IMFASFMutualExclusion **ppIMutex) {
  1812. return This->lpVtbl->GetMutualExclusion(This,dwMutexIndex,ppIMutex);
  1813. }
  1814. static FORCEINLINE HRESULT IMFASFProfile_AddMutualExclusion(IMFASFProfile* This,IMFASFMutualExclusion *pIMutex) {
  1815. return This->lpVtbl->AddMutualExclusion(This,pIMutex);
  1816. }
  1817. static FORCEINLINE HRESULT IMFASFProfile_RemoveMutualExclusion(IMFASFProfile* This,DWORD dwMutexIndex) {
  1818. return This->lpVtbl->RemoveMutualExclusion(This,dwMutexIndex);
  1819. }
  1820. static FORCEINLINE HRESULT IMFASFProfile_CreateMutualExclusion(IMFASFProfile* This,IMFASFMutualExclusion **ppIMutex) {
  1821. return This->lpVtbl->CreateMutualExclusion(This,ppIMutex);
  1822. }
  1823. static FORCEINLINE HRESULT IMFASFProfile_GetStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization **ppIStreamPrioritization) {
  1824. return This->lpVtbl->GetStreamPrioritization(This,ppIStreamPrioritization);
  1825. }
  1826. static FORCEINLINE HRESULT IMFASFProfile_AddStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization *pIStreamPrioritization) {
  1827. return This->lpVtbl->AddStreamPrioritization(This,pIStreamPrioritization);
  1828. }
  1829. static FORCEINLINE HRESULT IMFASFProfile_RemoveStreamPrioritization(IMFASFProfile* This) {
  1830. return This->lpVtbl->RemoveStreamPrioritization(This);
  1831. }
  1832. static FORCEINLINE HRESULT IMFASFProfile_CreateStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization **ppIStreamPrioritization) {
  1833. return This->lpVtbl->CreateStreamPrioritization(This,ppIStreamPrioritization);
  1834. }
  1835. static FORCEINLINE HRESULT IMFASFProfile_Clone(IMFASFProfile* This,IMFASFProfile **ppIProfile) {
  1836. return This->lpVtbl->Clone(This,ppIProfile);
  1837. }
  1838. #endif
  1839. #endif
  1840. #endif
  1841. #endif /* __IMFASFProfile_INTERFACE_DEFINED__ */
  1842. /*****************************************************************************
  1843. * IMFASFStreamConfig interface
  1844. */
  1845. #ifndef __IMFASFStreamConfig_INTERFACE_DEFINED__
  1846. #define __IMFASFStreamConfig_INTERFACE_DEFINED__
  1847. DEFINE_GUID(IID_IMFASFStreamConfig, 0x9e8ae8d2, 0xdbbd, 0x4200, 0x9a,0xca, 0x06,0xe6,0xdf,0x48,0x49,0x13);
  1848. #if defined(__cplusplus) && !defined(CINTERFACE)
  1849. MIDL_INTERFACE("9e8ae8d2-dbbd-4200-9aca-06e6df484913")
  1850. IMFASFStreamConfig : public IMFAttributes
  1851. {
  1852. virtual HRESULT STDMETHODCALLTYPE GetStreamType(
  1853. GUID *pguidStreamType) = 0;
  1854. virtual WORD STDMETHODCALLTYPE GetStreamNumber(
  1855. ) = 0;
  1856. virtual HRESULT STDMETHODCALLTYPE SetStreamNumber(
  1857. WORD wStreamNum) = 0;
  1858. virtual HRESULT STDMETHODCALLTYPE GetMediaType(
  1859. IMFMediaType **ppIMediaType) = 0;
  1860. virtual HRESULT STDMETHODCALLTYPE SetMediaType(
  1861. IMFMediaType *pIMediaType) = 0;
  1862. virtual HRESULT STDMETHODCALLTYPE GetPayloadExtensionCount(
  1863. WORD *pcPayloadExtensions) = 0;
  1864. virtual HRESULT STDMETHODCALLTYPE GetPayloadExtension(
  1865. WORD wPayloadExtensionNumber,
  1866. GUID *pguidExtensionSystemID,
  1867. WORD *pcbExtensionDataSize,
  1868. BYTE *pbExtensionSystemInfo,
  1869. DWORD *pcbExtensionSystemInfo) = 0;
  1870. virtual HRESULT STDMETHODCALLTYPE AddPayloadExtension(
  1871. GUID guidExtensionSystemID,
  1872. WORD cbExtensionDataSize,
  1873. BYTE *pbExtensionSystemInfo,
  1874. DWORD cbExtensionSystemInfo) = 0;
  1875. virtual HRESULT STDMETHODCALLTYPE RemoveAllPayloadExtensions(
  1876. ) = 0;
  1877. virtual HRESULT STDMETHODCALLTYPE Clone(
  1878. IMFASFStreamConfig **ppIStreamConfig) = 0;
  1879. };
  1880. #ifdef __CRT_UUID_DECL
  1881. __CRT_UUID_DECL(IMFASFStreamConfig, 0x9e8ae8d2, 0xdbbd, 0x4200, 0x9a,0xca, 0x06,0xe6,0xdf,0x48,0x49,0x13)
  1882. #endif
  1883. #else
  1884. typedef struct IMFASFStreamConfigVtbl {
  1885. BEGIN_INTERFACE
  1886. /*** IUnknown methods ***/
  1887. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1888. IMFASFStreamConfig *This,
  1889. REFIID riid,
  1890. void **ppvObject);
  1891. ULONG (STDMETHODCALLTYPE *AddRef)(
  1892. IMFASFStreamConfig *This);
  1893. ULONG (STDMETHODCALLTYPE *Release)(
  1894. IMFASFStreamConfig *This);
  1895. /*** IMFAttributes methods ***/
  1896. HRESULT (STDMETHODCALLTYPE *GetItem)(
  1897. IMFASFStreamConfig *This,
  1898. REFGUID guidKey,
  1899. PROPVARIANT *pValue);
  1900. HRESULT (STDMETHODCALLTYPE *GetItemType)(
  1901. IMFASFStreamConfig *This,
  1902. REFGUID guidKey,
  1903. MF_ATTRIBUTE_TYPE *pType);
  1904. HRESULT (STDMETHODCALLTYPE *CompareItem)(
  1905. IMFASFStreamConfig *This,
  1906. REFGUID guidKey,
  1907. REFPROPVARIANT Value,
  1908. WINBOOL *pbResult);
  1909. HRESULT (STDMETHODCALLTYPE *Compare)(
  1910. IMFASFStreamConfig *This,
  1911. IMFAttributes *pTheirs,
  1912. MF_ATTRIBUTES_MATCH_TYPE MatchType,
  1913. WINBOOL *pbResult);
  1914. HRESULT (STDMETHODCALLTYPE *GetUINT32)(
  1915. IMFASFStreamConfig *This,
  1916. REFGUID guidKey,
  1917. UINT32 *punValue);
  1918. HRESULT (STDMETHODCALLTYPE *GetUINT64)(
  1919. IMFASFStreamConfig *This,
  1920. REFGUID guidKey,
  1921. UINT64 *punValue);
  1922. HRESULT (STDMETHODCALLTYPE *GetDouble)(
  1923. IMFASFStreamConfig *This,
  1924. REFGUID guidKey,
  1925. double *pfValue);
  1926. HRESULT (STDMETHODCALLTYPE *GetGUID)(
  1927. IMFASFStreamConfig *This,
  1928. REFGUID guidKey,
  1929. GUID *pguidValue);
  1930. HRESULT (STDMETHODCALLTYPE *GetStringLength)(
  1931. IMFASFStreamConfig *This,
  1932. REFGUID guidKey,
  1933. UINT32 *pcchLength);
  1934. HRESULT (STDMETHODCALLTYPE *GetString)(
  1935. IMFASFStreamConfig *This,
  1936. REFGUID guidKey,
  1937. LPWSTR pwszValue,
  1938. UINT32 cchBufSize,
  1939. UINT32 *pcchLength);
  1940. HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
  1941. IMFASFStreamConfig *This,
  1942. REFGUID guidKey,
  1943. LPWSTR *ppwszValue,
  1944. UINT32 *pcchLength);
  1945. HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
  1946. IMFASFStreamConfig *This,
  1947. REFGUID guidKey,
  1948. UINT32 *pcbBlobSize);
  1949. HRESULT (STDMETHODCALLTYPE *GetBlob)(
  1950. IMFASFStreamConfig *This,
  1951. REFGUID guidKey,
  1952. UINT8 *pBuf,
  1953. UINT32 cbBufSize,
  1954. UINT32 *pcbBlobSize);
  1955. HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
  1956. IMFASFStreamConfig *This,
  1957. REFGUID guidKey,
  1958. UINT8 **ppBuf,
  1959. UINT32 *pcbSize);
  1960. HRESULT (STDMETHODCALLTYPE *GetUnknown)(
  1961. IMFASFStreamConfig *This,
  1962. REFGUID guidKey,
  1963. REFIID riid,
  1964. LPVOID *ppv);
  1965. HRESULT (STDMETHODCALLTYPE *SetItem)(
  1966. IMFASFStreamConfig *This,
  1967. REFGUID guidKey,
  1968. REFPROPVARIANT Value);
  1969. HRESULT (STDMETHODCALLTYPE *DeleteItem)(
  1970. IMFASFStreamConfig *This,
  1971. REFGUID guidKey);
  1972. HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
  1973. IMFASFStreamConfig *This);
  1974. HRESULT (STDMETHODCALLTYPE *SetUINT32)(
  1975. IMFASFStreamConfig *This,
  1976. REFGUID guidKey,
  1977. UINT32 unValue);
  1978. HRESULT (STDMETHODCALLTYPE *SetUINT64)(
  1979. IMFASFStreamConfig *This,
  1980. REFGUID guidKey,
  1981. UINT64 unValue);
  1982. HRESULT (STDMETHODCALLTYPE *SetDouble)(
  1983. IMFASFStreamConfig *This,
  1984. REFGUID guidKey,
  1985. double fValue);
  1986. HRESULT (STDMETHODCALLTYPE *SetGUID)(
  1987. IMFASFStreamConfig *This,
  1988. REFGUID guidKey,
  1989. REFGUID guidValue);
  1990. HRESULT (STDMETHODCALLTYPE *SetString)(
  1991. IMFASFStreamConfig *This,
  1992. REFGUID guidKey,
  1993. LPCWSTR wszValue);
  1994. HRESULT (STDMETHODCALLTYPE *SetBlob)(
  1995. IMFASFStreamConfig *This,
  1996. REFGUID guidKey,
  1997. const UINT8 *pBuf,
  1998. UINT32 cbBufSize);
  1999. HRESULT (STDMETHODCALLTYPE *SetUnknown)(
  2000. IMFASFStreamConfig *This,
  2001. REFGUID guidKey,
  2002. IUnknown *pUnknown);
  2003. HRESULT (STDMETHODCALLTYPE *LockStore)(
  2004. IMFASFStreamConfig *This);
  2005. HRESULT (STDMETHODCALLTYPE *UnlockStore)(
  2006. IMFASFStreamConfig *This);
  2007. HRESULT (STDMETHODCALLTYPE *GetCount)(
  2008. IMFASFStreamConfig *This,
  2009. UINT32 *pcItems);
  2010. HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
  2011. IMFASFStreamConfig *This,
  2012. UINT32 unIndex,
  2013. GUID *pguidKey,
  2014. PROPVARIANT *pValue);
  2015. HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
  2016. IMFASFStreamConfig *This,
  2017. IMFAttributes *pDest);
  2018. /*** IMFASFStreamConfig methods ***/
  2019. HRESULT (STDMETHODCALLTYPE *GetStreamType)(
  2020. IMFASFStreamConfig *This,
  2021. GUID *pguidStreamType);
  2022. WORD (STDMETHODCALLTYPE *GetStreamNumber)(
  2023. IMFASFStreamConfig *This);
  2024. HRESULT (STDMETHODCALLTYPE *SetStreamNumber)(
  2025. IMFASFStreamConfig *This,
  2026. WORD wStreamNum);
  2027. HRESULT (STDMETHODCALLTYPE *GetMediaType)(
  2028. IMFASFStreamConfig *This,
  2029. IMFMediaType **ppIMediaType);
  2030. HRESULT (STDMETHODCALLTYPE *SetMediaType)(
  2031. IMFASFStreamConfig *This,
  2032. IMFMediaType *pIMediaType);
  2033. HRESULT (STDMETHODCALLTYPE *GetPayloadExtensionCount)(
  2034. IMFASFStreamConfig *This,
  2035. WORD *pcPayloadExtensions);
  2036. HRESULT (STDMETHODCALLTYPE *GetPayloadExtension)(
  2037. IMFASFStreamConfig *This,
  2038. WORD wPayloadExtensionNumber,
  2039. GUID *pguidExtensionSystemID,
  2040. WORD *pcbExtensionDataSize,
  2041. BYTE *pbExtensionSystemInfo,
  2042. DWORD *pcbExtensionSystemInfo);
  2043. HRESULT (STDMETHODCALLTYPE *AddPayloadExtension)(
  2044. IMFASFStreamConfig *This,
  2045. GUID guidExtensionSystemID,
  2046. WORD cbExtensionDataSize,
  2047. BYTE *pbExtensionSystemInfo,
  2048. DWORD cbExtensionSystemInfo);
  2049. HRESULT (STDMETHODCALLTYPE *RemoveAllPayloadExtensions)(
  2050. IMFASFStreamConfig *This);
  2051. HRESULT (STDMETHODCALLTYPE *Clone)(
  2052. IMFASFStreamConfig *This,
  2053. IMFASFStreamConfig **ppIStreamConfig);
  2054. END_INTERFACE
  2055. } IMFASFStreamConfigVtbl;
  2056. interface IMFASFStreamConfig {
  2057. CONST_VTBL IMFASFStreamConfigVtbl* lpVtbl;
  2058. };
  2059. #ifdef COBJMACROS
  2060. #ifndef WIDL_C_INLINE_WRAPPERS
  2061. /*** IUnknown methods ***/
  2062. #define IMFASFStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2063. #define IMFASFStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
  2064. #define IMFASFStreamConfig_Release(This) (This)->lpVtbl->Release(This)
  2065. /*** IMFAttributes methods ***/
  2066. #define IMFASFStreamConfig_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
  2067. #define IMFASFStreamConfig_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
  2068. #define IMFASFStreamConfig_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
  2069. #define IMFASFStreamConfig_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
  2070. #define IMFASFStreamConfig_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
  2071. #define IMFASFStreamConfig_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
  2072. #define IMFASFStreamConfig_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
  2073. #define IMFASFStreamConfig_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
  2074. #define IMFASFStreamConfig_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
  2075. #define IMFASFStreamConfig_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
  2076. #define IMFASFStreamConfig_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
  2077. #define IMFASFStreamConfig_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
  2078. #define IMFASFStreamConfig_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
  2079. #define IMFASFStreamConfig_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
  2080. #define IMFASFStreamConfig_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
  2081. #define IMFASFStreamConfig_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
  2082. #define IMFASFStreamConfig_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
  2083. #define IMFASFStreamConfig_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
  2084. #define IMFASFStreamConfig_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
  2085. #define IMFASFStreamConfig_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
  2086. #define IMFASFStreamConfig_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
  2087. #define IMFASFStreamConfig_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
  2088. #define IMFASFStreamConfig_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
  2089. #define IMFASFStreamConfig_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
  2090. #define IMFASFStreamConfig_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
  2091. #define IMFASFStreamConfig_LockStore(This) (This)->lpVtbl->LockStore(This)
  2092. #define IMFASFStreamConfig_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
  2093. #define IMFASFStreamConfig_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
  2094. #define IMFASFStreamConfig_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
  2095. #define IMFASFStreamConfig_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
  2096. /*** IMFASFStreamConfig methods ***/
  2097. #define IMFASFStreamConfig_GetStreamType(This,pguidStreamType) (This)->lpVtbl->GetStreamType(This,pguidStreamType)
  2098. #define IMFASFStreamConfig_GetStreamNumber(This) (This)->lpVtbl->GetStreamNumber(This)
  2099. #define IMFASFStreamConfig_SetStreamNumber(This,wStreamNum) (This)->lpVtbl->SetStreamNumber(This,wStreamNum)
  2100. #define IMFASFStreamConfig_GetMediaType(This,ppIMediaType) (This)->lpVtbl->GetMediaType(This,ppIMediaType)
  2101. #define IMFASFStreamConfig_SetMediaType(This,pIMediaType) (This)->lpVtbl->SetMediaType(This,pIMediaType)
  2102. #define IMFASFStreamConfig_GetPayloadExtensionCount(This,pcPayloadExtensions) (This)->lpVtbl->GetPayloadExtensionCount(This,pcPayloadExtensions)
  2103. #define IMFASFStreamConfig_GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo) (This)->lpVtbl->GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo)
  2104. #define IMFASFStreamConfig_AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo) (This)->lpVtbl->AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo)
  2105. #define IMFASFStreamConfig_RemoveAllPayloadExtensions(This) (This)->lpVtbl->RemoveAllPayloadExtensions(This)
  2106. #define IMFASFStreamConfig_Clone(This,ppIStreamConfig) (This)->lpVtbl->Clone(This,ppIStreamConfig)
  2107. #else
  2108. /*** IUnknown methods ***/
  2109. static FORCEINLINE HRESULT IMFASFStreamConfig_QueryInterface(IMFASFStreamConfig* This,REFIID riid,void **ppvObject) {
  2110. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2111. }
  2112. static FORCEINLINE ULONG IMFASFStreamConfig_AddRef(IMFASFStreamConfig* This) {
  2113. return This->lpVtbl->AddRef(This);
  2114. }
  2115. static FORCEINLINE ULONG IMFASFStreamConfig_Release(IMFASFStreamConfig* This) {
  2116. return This->lpVtbl->Release(This);
  2117. }
  2118. /*** IMFAttributes methods ***/
  2119. static FORCEINLINE HRESULT IMFASFStreamConfig_GetItem(IMFASFStreamConfig* This,REFGUID guidKey,PROPVARIANT *pValue) {
  2120. return This->lpVtbl->GetItem(This,guidKey,pValue);
  2121. }
  2122. static FORCEINLINE HRESULT IMFASFStreamConfig_GetItemType(IMFASFStreamConfig* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
  2123. return This->lpVtbl->GetItemType(This,guidKey,pType);
  2124. }
  2125. static FORCEINLINE HRESULT IMFASFStreamConfig_CompareItem(IMFASFStreamConfig* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
  2126. return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
  2127. }
  2128. static FORCEINLINE HRESULT IMFASFStreamConfig_Compare(IMFASFStreamConfig* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
  2129. return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
  2130. }
  2131. static FORCEINLINE HRESULT IMFASFStreamConfig_GetUINT32(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *punValue) {
  2132. return This->lpVtbl->GetUINT32(This,guidKey,punValue);
  2133. }
  2134. static FORCEINLINE HRESULT IMFASFStreamConfig_GetUINT64(IMFASFStreamConfig* This,REFGUID guidKey,UINT64 *punValue) {
  2135. return This->lpVtbl->GetUINT64(This,guidKey,punValue);
  2136. }
  2137. static FORCEINLINE HRESULT IMFASFStreamConfig_GetDouble(IMFASFStreamConfig* This,REFGUID guidKey,double *pfValue) {
  2138. return This->lpVtbl->GetDouble(This,guidKey,pfValue);
  2139. }
  2140. static FORCEINLINE HRESULT IMFASFStreamConfig_GetGUID(IMFASFStreamConfig* This,REFGUID guidKey,GUID *pguidValue) {
  2141. return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
  2142. }
  2143. static FORCEINLINE HRESULT IMFASFStreamConfig_GetStringLength(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *pcchLength) {
  2144. return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
  2145. }
  2146. static FORCEINLINE HRESULT IMFASFStreamConfig_GetString(IMFASFStreamConfig* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
  2147. return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
  2148. }
  2149. static FORCEINLINE HRESULT IMFASFStreamConfig_GetAllocatedString(IMFASFStreamConfig* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
  2150. return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
  2151. }
  2152. static FORCEINLINE HRESULT IMFASFStreamConfig_GetBlobSize(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
  2153. return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
  2154. }
  2155. static FORCEINLINE HRESULT IMFASFStreamConfig_GetBlob(IMFASFStreamConfig* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
  2156. return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
  2157. }
  2158. static FORCEINLINE HRESULT IMFASFStreamConfig_GetAllocatedBlob(IMFASFStreamConfig* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
  2159. return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
  2160. }
  2161. static FORCEINLINE HRESULT IMFASFStreamConfig_GetUnknown(IMFASFStreamConfig* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
  2162. return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
  2163. }
  2164. static FORCEINLINE HRESULT IMFASFStreamConfig_SetItem(IMFASFStreamConfig* This,REFGUID guidKey,REFPROPVARIANT Value) {
  2165. return This->lpVtbl->SetItem(This,guidKey,Value);
  2166. }
  2167. static FORCEINLINE HRESULT IMFASFStreamConfig_DeleteItem(IMFASFStreamConfig* This,REFGUID guidKey) {
  2168. return This->lpVtbl->DeleteItem(This,guidKey);
  2169. }
  2170. static FORCEINLINE HRESULT IMFASFStreamConfig_DeleteAllItems(IMFASFStreamConfig* This) {
  2171. return This->lpVtbl->DeleteAllItems(This);
  2172. }
  2173. static FORCEINLINE HRESULT IMFASFStreamConfig_SetUINT32(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 unValue) {
  2174. return This->lpVtbl->SetUINT32(This,guidKey,unValue);
  2175. }
  2176. static FORCEINLINE HRESULT IMFASFStreamConfig_SetUINT64(IMFASFStreamConfig* This,REFGUID guidKey,UINT64 unValue) {
  2177. return This->lpVtbl->SetUINT64(This,guidKey,unValue);
  2178. }
  2179. static FORCEINLINE HRESULT IMFASFStreamConfig_SetDouble(IMFASFStreamConfig* This,REFGUID guidKey,double fValue) {
  2180. return This->lpVtbl->SetDouble(This,guidKey,fValue);
  2181. }
  2182. static FORCEINLINE HRESULT IMFASFStreamConfig_SetGUID(IMFASFStreamConfig* This,REFGUID guidKey,REFGUID guidValue) {
  2183. return This->lpVtbl->SetGUID(This,guidKey,guidValue);
  2184. }
  2185. static FORCEINLINE HRESULT IMFASFStreamConfig_SetString(IMFASFStreamConfig* This,REFGUID guidKey,LPCWSTR wszValue) {
  2186. return This->lpVtbl->SetString(This,guidKey,wszValue);
  2187. }
  2188. static FORCEINLINE HRESULT IMFASFStreamConfig_SetBlob(IMFASFStreamConfig* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
  2189. return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
  2190. }
  2191. static FORCEINLINE HRESULT IMFASFStreamConfig_SetUnknown(IMFASFStreamConfig* This,REFGUID guidKey,IUnknown *pUnknown) {
  2192. return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
  2193. }
  2194. static FORCEINLINE HRESULT IMFASFStreamConfig_LockStore(IMFASFStreamConfig* This) {
  2195. return This->lpVtbl->LockStore(This);
  2196. }
  2197. static FORCEINLINE HRESULT IMFASFStreamConfig_UnlockStore(IMFASFStreamConfig* This) {
  2198. return This->lpVtbl->UnlockStore(This);
  2199. }
  2200. static FORCEINLINE HRESULT IMFASFStreamConfig_GetCount(IMFASFStreamConfig* This,UINT32 *pcItems) {
  2201. return This->lpVtbl->GetCount(This,pcItems);
  2202. }
  2203. static FORCEINLINE HRESULT IMFASFStreamConfig_GetItemByIndex(IMFASFStreamConfig* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
  2204. return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
  2205. }
  2206. static FORCEINLINE HRESULT IMFASFStreamConfig_CopyAllItems(IMFASFStreamConfig* This,IMFAttributes *pDest) {
  2207. return This->lpVtbl->CopyAllItems(This,pDest);
  2208. }
  2209. /*** IMFASFStreamConfig methods ***/
  2210. static FORCEINLINE HRESULT IMFASFStreamConfig_GetStreamType(IMFASFStreamConfig* This,GUID *pguidStreamType) {
  2211. return This->lpVtbl->GetStreamType(This,pguidStreamType);
  2212. }
  2213. static FORCEINLINE WORD IMFASFStreamConfig_GetStreamNumber(IMFASFStreamConfig* This) {
  2214. return This->lpVtbl->GetStreamNumber(This);
  2215. }
  2216. static FORCEINLINE HRESULT IMFASFStreamConfig_SetStreamNumber(IMFASFStreamConfig* This,WORD wStreamNum) {
  2217. return This->lpVtbl->SetStreamNumber(This,wStreamNum);
  2218. }
  2219. static FORCEINLINE HRESULT IMFASFStreamConfig_GetMediaType(IMFASFStreamConfig* This,IMFMediaType **ppIMediaType) {
  2220. return This->lpVtbl->GetMediaType(This,ppIMediaType);
  2221. }
  2222. static FORCEINLINE HRESULT IMFASFStreamConfig_SetMediaType(IMFASFStreamConfig* This,IMFMediaType *pIMediaType) {
  2223. return This->lpVtbl->SetMediaType(This,pIMediaType);
  2224. }
  2225. static FORCEINLINE HRESULT IMFASFStreamConfig_GetPayloadExtensionCount(IMFASFStreamConfig* This,WORD *pcPayloadExtensions) {
  2226. return This->lpVtbl->GetPayloadExtensionCount(This,pcPayloadExtensions);
  2227. }
  2228. static FORCEINLINE HRESULT IMFASFStreamConfig_GetPayloadExtension(IMFASFStreamConfig* This,WORD wPayloadExtensionNumber,GUID *pguidExtensionSystemID,WORD *pcbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD *pcbExtensionSystemInfo) {
  2229. return This->lpVtbl->GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo);
  2230. }
  2231. static FORCEINLINE HRESULT IMFASFStreamConfig_AddPayloadExtension(IMFASFStreamConfig* This,GUID guidExtensionSystemID,WORD cbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD cbExtensionSystemInfo) {
  2232. return This->lpVtbl->AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo);
  2233. }
  2234. static FORCEINLINE HRESULT IMFASFStreamConfig_RemoveAllPayloadExtensions(IMFASFStreamConfig* This) {
  2235. return This->lpVtbl->RemoveAllPayloadExtensions(This);
  2236. }
  2237. static FORCEINLINE HRESULT IMFASFStreamConfig_Clone(IMFASFStreamConfig* This,IMFASFStreamConfig **ppIStreamConfig) {
  2238. return This->lpVtbl->Clone(This,ppIStreamConfig);
  2239. }
  2240. #endif
  2241. #endif
  2242. #endif
  2243. #endif /* __IMFASFStreamConfig_INTERFACE_DEFINED__ */
  2244. EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_BASE_SENDTIME = { { 0xcddcbc82, 0x3411, 0x4119, 0x91, 0x35, 0x84, 0x23, 0xc4, 0x1b, 0x39, 0x57}, 3 };
  2245. EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE = { { 0xcddcbc82, 0x3411, 0x4119, 0x91, 0x35, 0x84, 0x23, 0xc4, 0x1b, 0x39, 0x57}, 4 };
  2246. EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_DRMACTION = { { 0xa1db6f6c, 0x1d0a, 0x4cb6, 0x82, 0x54, 0xcb, 0x36, 0xbe, 0xed, 0xbc, 0x48}, 5 };
  2247. EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET = { { 0xa2f152fb, 0x8ad9, 0x4a11, 0xb3, 0x45, 0x2c, 0xe2, 0xfa, 0xd8, 0x72, 0x3d}, 1 };
  2248. STDAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo);
  2249. STDAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer);
  2250. STDAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream, QWORD cbIndexStartOffset, IMFByteStream **pIIndexByteStream);
  2251. STDAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream, IMFMediaSink **ppIMediaSink);
  2252. STDAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName, IMFASFContentInfo *pContentInfo, IMFActivate **ppIActivate);
  2253. STDAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer);
  2254. STDAPI MFCreateASFProfile(IMFASFProfile **ppIProfile);
  2255. STDAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor *pIPD, IMFASFProfile **ppIProfile);
  2256. STDAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter);
  2257. STDAPI MFCreateASFStreamingMediaSink(IMFByteStream *pIByteStream, IMFMediaSink **ppIMediaSink);
  2258. STDAPI MFCreateASFStreamingMediaSinkActivate(IMFActivate *pByteStreamActivate, IMFASFContentInfo *pContentInfo, IMFActivate **ppIActivate);
  2259. STDAPI MFCreateASFStreamSelector(IMFASFProfile *pIASFProfile, IMFASFStreamSelector **ppSelector);
  2260. STDAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile, IMFPresentationDescriptor **ppIPD);
  2261. HRESULT STDMETHODCALLTYPE MFCreateWMVEncoderActivate(IMFMediaType *pMediaType, IPropertyStore *pEncodingConfigurationProperties, IMFActivate **ppActivate);
  2262. HRESULT STDMETHODCALLTYPE MFCreateWMAEncoderActivate(IMFMediaType *pMediaType, IPropertyStore *pEncodingConfigurationProperties, IMFActivate **ppActivate);
  2263. #endif
  2264. /* Begin additional prototypes for all interfaces */
  2265. ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
  2266. unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
  2267. unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
  2268. void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
  2269. /* End additional prototypes */
  2270. #ifdef __cplusplus
  2271. }
  2272. #endif
  2273. #endif /* __wmcontainer_h__ */