devicetopology.h 107 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141
  1. /*** Autogenerated by WIDL 7.7 from include/devicetopology.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 __devicetopology_h__
  14. #define __devicetopology_h__
  15. /* Forward declarations */
  16. #ifndef __IKsControl_FWD_DEFINED__
  17. #define __IKsControl_FWD_DEFINED__
  18. typedef interface IKsControl IKsControl;
  19. #ifdef __cplusplus
  20. interface IKsControl;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IPerChannelDbLevel_FWD_DEFINED__
  24. #define __IPerChannelDbLevel_FWD_DEFINED__
  25. typedef interface IPerChannelDbLevel IPerChannelDbLevel;
  26. #ifdef __cplusplus
  27. interface IPerChannelDbLevel;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IAudioVolumeLevel_FWD_DEFINED__
  31. #define __IAudioVolumeLevel_FWD_DEFINED__
  32. typedef interface IAudioVolumeLevel IAudioVolumeLevel;
  33. #ifdef __cplusplus
  34. interface IAudioVolumeLevel;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __IAudioChannelConfig_FWD_DEFINED__
  38. #define __IAudioChannelConfig_FWD_DEFINED__
  39. typedef interface IAudioChannelConfig IAudioChannelConfig;
  40. #ifdef __cplusplus
  41. interface IAudioChannelConfig;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __IAudioLoudness_FWD_DEFINED__
  45. #define __IAudioLoudness_FWD_DEFINED__
  46. typedef interface IAudioLoudness IAudioLoudness;
  47. #ifdef __cplusplus
  48. interface IAudioLoudness;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __IAudioInputSelector_FWD_DEFINED__
  52. #define __IAudioInputSelector_FWD_DEFINED__
  53. typedef interface IAudioInputSelector IAudioInputSelector;
  54. #ifdef __cplusplus
  55. interface IAudioInputSelector;
  56. #endif /* __cplusplus */
  57. #endif
  58. #ifndef __IAudioOutputSelector_FWD_DEFINED__
  59. #define __IAudioOutputSelector_FWD_DEFINED__
  60. typedef interface IAudioOutputSelector IAudioOutputSelector;
  61. #ifdef __cplusplus
  62. interface IAudioOutputSelector;
  63. #endif /* __cplusplus */
  64. #endif
  65. #ifndef __IAudioMute_FWD_DEFINED__
  66. #define __IAudioMute_FWD_DEFINED__
  67. typedef interface IAudioMute IAudioMute;
  68. #ifdef __cplusplus
  69. interface IAudioMute;
  70. #endif /* __cplusplus */
  71. #endif
  72. #ifndef __IAudioBass_FWD_DEFINED__
  73. #define __IAudioBass_FWD_DEFINED__
  74. typedef interface IAudioBass IAudioBass;
  75. #ifdef __cplusplus
  76. interface IAudioBass;
  77. #endif /* __cplusplus */
  78. #endif
  79. #ifndef __IAudioMidRange_FWD_DEFINED__
  80. #define __IAudioMidRange_FWD_DEFINED__
  81. typedef interface IAudioMidRange IAudioMidRange;
  82. #ifdef __cplusplus
  83. interface IAudioMidRange;
  84. #endif /* __cplusplus */
  85. #endif
  86. #ifndef __IAudioTreble_FWD_DEFINED__
  87. #define __IAudioTreble_FWD_DEFINED__
  88. typedef interface IAudioTreble IAudioTreble;
  89. #ifdef __cplusplus
  90. interface IAudioTreble;
  91. #endif /* __cplusplus */
  92. #endif
  93. #ifndef __IAudioAutoGainControl_FWD_DEFINED__
  94. #define __IAudioAutoGainControl_FWD_DEFINED__
  95. typedef interface IAudioAutoGainControl IAudioAutoGainControl;
  96. #ifdef __cplusplus
  97. interface IAudioAutoGainControl;
  98. #endif /* __cplusplus */
  99. #endif
  100. #ifndef __IAudioPeakMeter_FWD_DEFINED__
  101. #define __IAudioPeakMeter_FWD_DEFINED__
  102. typedef interface IAudioPeakMeter IAudioPeakMeter;
  103. #ifdef __cplusplus
  104. interface IAudioPeakMeter;
  105. #endif /* __cplusplus */
  106. #endif
  107. #ifndef __IDeviceSpecificProperty_FWD_DEFINED__
  108. #define __IDeviceSpecificProperty_FWD_DEFINED__
  109. typedef interface IDeviceSpecificProperty IDeviceSpecificProperty;
  110. #ifdef __cplusplus
  111. interface IDeviceSpecificProperty;
  112. #endif /* __cplusplus */
  113. #endif
  114. #ifndef __IKsFormatSupport_FWD_DEFINED__
  115. #define __IKsFormatSupport_FWD_DEFINED__
  116. typedef interface IKsFormatSupport IKsFormatSupport;
  117. #ifdef __cplusplus
  118. interface IKsFormatSupport;
  119. #endif /* __cplusplus */
  120. #endif
  121. #ifndef __IKsJackDescription_FWD_DEFINED__
  122. #define __IKsJackDescription_FWD_DEFINED__
  123. typedef interface IKsJackDescription IKsJackDescription;
  124. #ifdef __cplusplus
  125. interface IKsJackDescription;
  126. #endif /* __cplusplus */
  127. #endif
  128. #ifndef __IKsJackDescription2_FWD_DEFINED__
  129. #define __IKsJackDescription2_FWD_DEFINED__
  130. typedef interface IKsJackDescription2 IKsJackDescription2;
  131. #ifdef __cplusplus
  132. interface IKsJackDescription2;
  133. #endif /* __cplusplus */
  134. #endif
  135. #ifndef __IKsJackSinkInformation_FWD_DEFINED__
  136. #define __IKsJackSinkInformation_FWD_DEFINED__
  137. typedef interface IKsJackSinkInformation IKsJackSinkInformation;
  138. #ifdef __cplusplus
  139. interface IKsJackSinkInformation;
  140. #endif /* __cplusplus */
  141. #endif
  142. #ifndef __IPartsList_FWD_DEFINED__
  143. #define __IPartsList_FWD_DEFINED__
  144. typedef interface IPartsList IPartsList;
  145. #ifdef __cplusplus
  146. interface IPartsList;
  147. #endif /* __cplusplus */
  148. #endif
  149. #ifndef __IPart_FWD_DEFINED__
  150. #define __IPart_FWD_DEFINED__
  151. typedef interface IPart IPart;
  152. #ifdef __cplusplus
  153. interface IPart;
  154. #endif /* __cplusplus */
  155. #endif
  156. #ifndef __IConnector_FWD_DEFINED__
  157. #define __IConnector_FWD_DEFINED__
  158. typedef interface IConnector IConnector;
  159. #ifdef __cplusplus
  160. interface IConnector;
  161. #endif /* __cplusplus */
  162. #endif
  163. #ifndef __ISubUnit_FWD_DEFINED__
  164. #define __ISubUnit_FWD_DEFINED__
  165. typedef interface ISubUnit ISubUnit;
  166. #ifdef __cplusplus
  167. interface ISubUnit;
  168. #endif /* __cplusplus */
  169. #endif
  170. #ifndef __IControlInterface_FWD_DEFINED__
  171. #define __IControlInterface_FWD_DEFINED__
  172. typedef interface IControlInterface IControlInterface;
  173. #ifdef __cplusplus
  174. interface IControlInterface;
  175. #endif /* __cplusplus */
  176. #endif
  177. #ifndef __IControlChangeNotify_FWD_DEFINED__
  178. #define __IControlChangeNotify_FWD_DEFINED__
  179. typedef interface IControlChangeNotify IControlChangeNotify;
  180. #ifdef __cplusplus
  181. interface IControlChangeNotify;
  182. #endif /* __cplusplus */
  183. #endif
  184. #ifndef __IDeviceTopology_FWD_DEFINED__
  185. #define __IDeviceTopology_FWD_DEFINED__
  186. typedef interface IDeviceTopology IDeviceTopology;
  187. #ifdef __cplusplus
  188. interface IDeviceTopology;
  189. #endif /* __cplusplus */
  190. #endif
  191. #ifndef __DeviceTopology_FWD_DEFINED__
  192. #define __DeviceTopology_FWD_DEFINED__
  193. #ifdef __cplusplus
  194. typedef class DeviceTopology DeviceTopology;
  195. #else
  196. typedef struct DeviceTopology DeviceTopology;
  197. #endif /* defined __cplusplus */
  198. #endif /* defined __DeviceTopology_FWD_DEFINED__ */
  199. /* Headers for imported files */
  200. #include <oaidl.h>
  201. #include <ocidl.h>
  202. #include <propidl.h>
  203. #ifdef __cplusplus
  204. extern "C" {
  205. #endif
  206. #ifndef __IPart_FWD_DEFINED__
  207. #define __IPart_FWD_DEFINED__
  208. typedef interface IPart IPart;
  209. #ifdef __cplusplus
  210. interface IPart;
  211. #endif /* __cplusplus */
  212. #endif
  213. #ifndef __IControlInterface_FWD_DEFINED__
  214. #define __IControlInterface_FWD_DEFINED__
  215. typedef interface IControlInterface IControlInterface;
  216. #ifdef __cplusplus
  217. interface IControlInterface;
  218. #endif /* __cplusplus */
  219. #endif
  220. #ifndef __IDeviceTopology_FWD_DEFINED__
  221. #define __IDeviceTopology_FWD_DEFINED__
  222. typedef interface IDeviceTopology IDeviceTopology;
  223. #ifdef __cplusplus
  224. interface IDeviceTopology;
  225. #endif /* __cplusplus */
  226. #endif
  227. #ifndef __IControlChangeNotify_FWD_DEFINED__
  228. #define __IControlChangeNotify_FWD_DEFINED__
  229. typedef interface IControlChangeNotify IControlChangeNotify;
  230. #ifdef __cplusplus
  231. interface IControlChangeNotify;
  232. #endif /* __cplusplus */
  233. #endif
  234. #ifndef E_NOTFOUND
  235. #define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
  236. #endif
  237. #define DEVTOPO_HARDWARE_INITIATED_EVENTCONTEXT 0x64726148 /* 'draH' */
  238. DEFINE_GUID(EVENTCONTEXT_VOLUMESLIDER, 0xe2c2e9de, 0x09b1, 0x4b04,0x84,0xe5, 0x07, 0x93, 0x12, 0x25, 0xee, 0x04);
  239. #define _IKsControl_
  240. #include <ks.h>
  241. #include <ksmedia.h>
  242. #ifndef _KS_
  243. typedef struct __WIDL_devicetopology_generated_name_00000020 {
  244. ULONG FormatSize;
  245. ULONG Flags;
  246. ULONG SampleSize;
  247. ULONG Reserved;
  248. GUID MajorFormat;
  249. GUID SubFormat;
  250. GUID Specifier;
  251. } KSDATAFORMAT;
  252. typedef KSDATAFORMAT *PKSDATAFORMAT;
  253. typedef struct __WIDL_devicetopology_generated_name_00000021 {
  254. __C89_NAMELESS union {
  255. __C89_NAMELESS struct {
  256. GUID Set;
  257. ULONG Id;
  258. ULONG Flags;
  259. } __C89_NAMELESSSTRUCTNAME;
  260. LONGLONG Alignment;
  261. } __C89_NAMELESSUNIONNAME;
  262. } KSIDENTIFIER;
  263. typedef KSIDENTIFIER KSPROPERTY;
  264. typedef KSIDENTIFIER *PKSPROPERTY;
  265. typedef KSIDENTIFIER KSMETHOD;
  266. typedef KSIDENTIFIER *PKSMETHOD;
  267. typedef KSIDENTIFIER KSEVENT;
  268. typedef KSIDENTIFIER *PKSEVENT;
  269. typedef enum __WIDL_devicetopology_generated_name_00000022 {
  270. eConnTypeUnknown = 0,
  271. eConnType3Point5mm = 1,
  272. eConnTypeQuarter = 2,
  273. eConnTypeAtapiInternal = 3,
  274. eConnTypeRCA = 4,
  275. eConnTypeOptical = 5,
  276. eConnTypeOtherDigital = 6,
  277. eConnTypeOtherAnalog = 7,
  278. eConnTypeMultichannelAnalogDIN = 8,
  279. eConnTypeXlrProfessional = 9,
  280. eConnTypeRJ11Modem = 10,
  281. eConnTypeCombination = 11
  282. } EPcxConnectionType;
  283. typedef enum __WIDL_devicetopology_generated_name_00000023 {
  284. eGeoLocRear = 1,
  285. eGeoLocFront = 2,
  286. eGeoLocLeft = 3,
  287. eGeoLocRight = 4,
  288. eGeoLocTop = 5,
  289. eGeoLocBottom = 6,
  290. eGeoLocRearPanel = 7,
  291. eGeoLocRiser = 8,
  292. eGeoLocInsideMobileLid = 9,
  293. eGeoLocDrivebay = 10,
  294. eGeoLocHDMI = 11,
  295. eGeoLocOutsideMobileLid = 12,
  296. eGeoLocATAPI = 13,
  297. eGeoLocReserved5 = 14,
  298. eGeoLocReserved6 = 15
  299. } EPcxGeoLocation;
  300. typedef enum __WIDL_devicetopology_generated_name_00000024 {
  301. eGenLocPrimaryBox = 0,
  302. eGenLocInternal = 1,
  303. eGenLocSeparate = 2,
  304. eGenLocOther = 3
  305. } EPcxGenLocation;
  306. typedef enum __WIDL_devicetopology_generated_name_00000025 {
  307. ePortConnJack = 0,
  308. ePortConnIntegratedDevice = 1,
  309. ePortConnBothIntegratedAndJack = 2,
  310. ePortConnUnknown = 3
  311. } EPxcPortConnection;
  312. typedef struct __WIDL_devicetopology_generated_name_00000026 {
  313. DWORD ChannelMapping;
  314. COLORREF Color;
  315. EPcxConnectionType ConnectionType;
  316. EPcxGeoLocation GeoLocation;
  317. EPcxGenLocation GenLocation;
  318. EPxcPortConnection PortConnection;
  319. WINBOOL IsConnected;
  320. } KSJACK_DESCRIPTION;
  321. typedef KSJACK_DESCRIPTION *PKSJACK_DESCRIPTION;
  322. typedef struct _LUID {
  323. DWORD LowPart;
  324. LONG HighPart;
  325. } LUID;
  326. typedef struct _LUID *PLUID;
  327. typedef enum __WIDL_devicetopology_generated_name_00000027 {
  328. KSJACK_SINK_CONNECTIONTYPE_HDMI = 0,
  329. KSJACK_SINK_CONNECTIONTYPE_DISPLAYPORT = 1
  330. } KSJACK_SINK_CONNECTIONTYPE;
  331. typedef struct _tagKSJACK_SINK_INFORMATION {
  332. KSJACK_SINK_CONNECTIONTYPE ConnType;
  333. WORD ManufacturerId;
  334. WORD ProductId;
  335. WORD AudioLatency;
  336. WINBOOL HDCPCapable;
  337. WINBOOL AICapable;
  338. UCHAR SinkDescriptionLength;
  339. WCHAR SinkDescription[32];
  340. LUID PortId;
  341. } KSJACK_SINK_INFORMATION;
  342. typedef struct _tagKSJACK_DESCRIPTION2 {
  343. DWORD DeviceStateInfo;
  344. DWORD JackCapabilities;
  345. } KSJACK_DESCRIPTION2;
  346. typedef struct _tagKSJACK_DESCRIPTION2 *PKSJACK_DESCRIPTION2;
  347. #endif
  348. typedef enum __WIDL_devicetopology_generated_name_00000028 {
  349. In = 0,
  350. Out = 1
  351. } DataFlow;
  352. typedef enum __WIDL_devicetopology_generated_name_00000029 {
  353. Connector = 0,
  354. Subunit = 1
  355. } PartType;
  356. typedef enum __WIDL_devicetopology_generated_name_0000002A {
  357. Unknown_Connector = 0,
  358. Physical_Internal = 1,
  359. Physical_External = 2,
  360. Software_IO = 3,
  361. Software_Fixed = 4,
  362. Network = 5
  363. } ConnectorType;
  364. /*****************************************************************************
  365. * IKsControl interface
  366. */
  367. #ifndef __IKsControl_INTERFACE_DEFINED__
  368. #define __IKsControl_INTERFACE_DEFINED__
  369. DEFINE_GUID(IID_IKsControl, 0x28f54685, 0x06fd, 0x11d2, 0xb2,0x7a, 0x00,0xa0,0xc9,0x22,0x31,0x96);
  370. #if defined(__cplusplus) && !defined(CINTERFACE)
  371. MIDL_INTERFACE("28f54685-06fd-11d2-b27a-00a0c9223196")
  372. IKsControl : public IUnknown
  373. {
  374. virtual HRESULT STDMETHODCALLTYPE KsProperty(
  375. PKSPROPERTY Property,
  376. ULONG PropertyLength,
  377. void *PropertyData,
  378. ULONG DataLength,
  379. ULONG *BytesReturned) = 0;
  380. virtual HRESULT STDMETHODCALLTYPE KsMethod(
  381. PKSMETHOD Method,
  382. ULONG MethodLength,
  383. void *MethodData,
  384. ULONG DataLength,
  385. ULONG *BytesReturned) = 0;
  386. virtual HRESULT STDMETHODCALLTYPE KsEvent(
  387. PKSEVENT Event,
  388. ULONG EventLength,
  389. void *EventData,
  390. ULONG DataLength,
  391. ULONG *BytesReturned) = 0;
  392. };
  393. #ifdef __CRT_UUID_DECL
  394. __CRT_UUID_DECL(IKsControl, 0x28f54685, 0x06fd, 0x11d2, 0xb2,0x7a, 0x00,0xa0,0xc9,0x22,0x31,0x96)
  395. #endif
  396. #else
  397. typedef struct IKsControlVtbl {
  398. BEGIN_INTERFACE
  399. /*** IUnknown methods ***/
  400. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  401. IKsControl *This,
  402. REFIID riid,
  403. void **ppvObject);
  404. ULONG (STDMETHODCALLTYPE *AddRef)(
  405. IKsControl *This);
  406. ULONG (STDMETHODCALLTYPE *Release)(
  407. IKsControl *This);
  408. /*** IKsControl methods ***/
  409. HRESULT (STDMETHODCALLTYPE *KsProperty)(
  410. IKsControl *This,
  411. PKSPROPERTY Property,
  412. ULONG PropertyLength,
  413. void *PropertyData,
  414. ULONG DataLength,
  415. ULONG *BytesReturned);
  416. HRESULT (STDMETHODCALLTYPE *KsMethod)(
  417. IKsControl *This,
  418. PKSMETHOD Method,
  419. ULONG MethodLength,
  420. void *MethodData,
  421. ULONG DataLength,
  422. ULONG *BytesReturned);
  423. HRESULT (STDMETHODCALLTYPE *KsEvent)(
  424. IKsControl *This,
  425. PKSEVENT Event,
  426. ULONG EventLength,
  427. void *EventData,
  428. ULONG DataLength,
  429. ULONG *BytesReturned);
  430. END_INTERFACE
  431. } IKsControlVtbl;
  432. interface IKsControl {
  433. CONST_VTBL IKsControlVtbl* lpVtbl;
  434. };
  435. #ifdef COBJMACROS
  436. #ifndef WIDL_C_INLINE_WRAPPERS
  437. /*** IUnknown methods ***/
  438. #define IKsControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  439. #define IKsControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  440. #define IKsControl_Release(This) (This)->lpVtbl->Release(This)
  441. /*** IKsControl methods ***/
  442. #define IKsControl_KsProperty(This,Property,PropertyLength,PropertyData,DataLength,BytesReturned) (This)->lpVtbl->KsProperty(This,Property,PropertyLength,PropertyData,DataLength,BytesReturned)
  443. #define IKsControl_KsMethod(This,Method,MethodLength,MethodData,DataLength,BytesReturned) (This)->lpVtbl->KsMethod(This,Method,MethodLength,MethodData,DataLength,BytesReturned)
  444. #define IKsControl_KsEvent(This,Event,EventLength,EventData,DataLength,BytesReturned) (This)->lpVtbl->KsEvent(This,Event,EventLength,EventData,DataLength,BytesReturned)
  445. #else
  446. /*** IUnknown methods ***/
  447. static FORCEINLINE HRESULT IKsControl_QueryInterface(IKsControl* This,REFIID riid,void **ppvObject) {
  448. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  449. }
  450. static FORCEINLINE ULONG IKsControl_AddRef(IKsControl* This) {
  451. return This->lpVtbl->AddRef(This);
  452. }
  453. static FORCEINLINE ULONG IKsControl_Release(IKsControl* This) {
  454. return This->lpVtbl->Release(This);
  455. }
  456. /*** IKsControl methods ***/
  457. static FORCEINLINE HRESULT IKsControl_KsProperty(IKsControl* This,PKSPROPERTY Property,ULONG PropertyLength,void *PropertyData,ULONG DataLength,ULONG *BytesReturned) {
  458. return This->lpVtbl->KsProperty(This,Property,PropertyLength,PropertyData,DataLength,BytesReturned);
  459. }
  460. static FORCEINLINE HRESULT IKsControl_KsMethod(IKsControl* This,PKSMETHOD Method,ULONG MethodLength,void *MethodData,ULONG DataLength,ULONG *BytesReturned) {
  461. return This->lpVtbl->KsMethod(This,Method,MethodLength,MethodData,DataLength,BytesReturned);
  462. }
  463. static FORCEINLINE HRESULT IKsControl_KsEvent(IKsControl* This,PKSEVENT Event,ULONG EventLength,void *EventData,ULONG DataLength,ULONG *BytesReturned) {
  464. return This->lpVtbl->KsEvent(This,Event,EventLength,EventData,DataLength,BytesReturned);
  465. }
  466. #endif
  467. #endif
  468. #endif
  469. #endif /* __IKsControl_INTERFACE_DEFINED__ */
  470. /*****************************************************************************
  471. * IPerChannelDbLevel interface
  472. */
  473. #ifndef __IPerChannelDbLevel_INTERFACE_DEFINED__
  474. #define __IPerChannelDbLevel_INTERFACE_DEFINED__
  475. DEFINE_GUID(IID_IPerChannelDbLevel, 0xc2f8e001, 0xf205, 0x4bc9, 0x99,0xbc, 0xc1,0x3b,0x1e,0x04,0x8c,0xcb);
  476. #if defined(__cplusplus) && !defined(CINTERFACE)
  477. MIDL_INTERFACE("c2f8e001-f205-4bc9-99bc-c13b1e048ccb")
  478. IPerChannelDbLevel : public IUnknown
  479. {
  480. virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
  481. UINT *pcChannels) = 0;
  482. virtual HRESULT STDMETHODCALLTYPE GetLevelRange(
  483. UINT nChannel,
  484. float *pfMinLevelDB,
  485. float *pfMaxLevelDB,
  486. float *pfStepping) = 0;
  487. virtual HRESULT STDMETHODCALLTYPE GetLevel(
  488. UINT nChannel,
  489. float *pfLevelDB) = 0;
  490. virtual HRESULT STDMETHODCALLTYPE SetLevel(
  491. UINT nChannel,
  492. float fLevelDB,
  493. LPCGUID pguidEventContext) = 0;
  494. virtual HRESULT STDMETHODCALLTYPE SetLevelUniform(
  495. float fLevelDB,
  496. LPCGUID pguidEventContext) = 0;
  497. virtual HRESULT STDMETHODCALLTYPE SetLevelAllChannels(
  498. float *aLevelsDB,
  499. ULONG cChannels,
  500. LPCGUID pguidEventContext) = 0;
  501. };
  502. #ifdef __CRT_UUID_DECL
  503. __CRT_UUID_DECL(IPerChannelDbLevel, 0xc2f8e001, 0xf205, 0x4bc9, 0x99,0xbc, 0xc1,0x3b,0x1e,0x04,0x8c,0xcb)
  504. #endif
  505. #else
  506. typedef struct IPerChannelDbLevelVtbl {
  507. BEGIN_INTERFACE
  508. /*** IUnknown methods ***/
  509. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  510. IPerChannelDbLevel *This,
  511. REFIID riid,
  512. void **ppvObject);
  513. ULONG (STDMETHODCALLTYPE *AddRef)(
  514. IPerChannelDbLevel *This);
  515. ULONG (STDMETHODCALLTYPE *Release)(
  516. IPerChannelDbLevel *This);
  517. /*** IPerChannelDbLevel methods ***/
  518. HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
  519. IPerChannelDbLevel *This,
  520. UINT *pcChannels);
  521. HRESULT (STDMETHODCALLTYPE *GetLevelRange)(
  522. IPerChannelDbLevel *This,
  523. UINT nChannel,
  524. float *pfMinLevelDB,
  525. float *pfMaxLevelDB,
  526. float *pfStepping);
  527. HRESULT (STDMETHODCALLTYPE *GetLevel)(
  528. IPerChannelDbLevel *This,
  529. UINT nChannel,
  530. float *pfLevelDB);
  531. HRESULT (STDMETHODCALLTYPE *SetLevel)(
  532. IPerChannelDbLevel *This,
  533. UINT nChannel,
  534. float fLevelDB,
  535. LPCGUID pguidEventContext);
  536. HRESULT (STDMETHODCALLTYPE *SetLevelUniform)(
  537. IPerChannelDbLevel *This,
  538. float fLevelDB,
  539. LPCGUID pguidEventContext);
  540. HRESULT (STDMETHODCALLTYPE *SetLevelAllChannels)(
  541. IPerChannelDbLevel *This,
  542. float *aLevelsDB,
  543. ULONG cChannels,
  544. LPCGUID pguidEventContext);
  545. END_INTERFACE
  546. } IPerChannelDbLevelVtbl;
  547. interface IPerChannelDbLevel {
  548. CONST_VTBL IPerChannelDbLevelVtbl* lpVtbl;
  549. };
  550. #ifdef COBJMACROS
  551. #ifndef WIDL_C_INLINE_WRAPPERS
  552. /*** IUnknown methods ***/
  553. #define IPerChannelDbLevel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  554. #define IPerChannelDbLevel_AddRef(This) (This)->lpVtbl->AddRef(This)
  555. #define IPerChannelDbLevel_Release(This) (This)->lpVtbl->Release(This)
  556. /*** IPerChannelDbLevel methods ***/
  557. #define IPerChannelDbLevel_GetChannelCount(This,pcChannels) (This)->lpVtbl->GetChannelCount(This,pcChannels)
  558. #define IPerChannelDbLevel_GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping) (This)->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping)
  559. #define IPerChannelDbLevel_GetLevel(This,nChannel,pfLevelDB) (This)->lpVtbl->GetLevel(This,nChannel,pfLevelDB)
  560. #define IPerChannelDbLevel_SetLevel(This,nChannel,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext)
  561. #define IPerChannelDbLevel_SetLevelUniform(This,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext)
  562. #define IPerChannelDbLevel_SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext) (This)->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext)
  563. #else
  564. /*** IUnknown methods ***/
  565. static FORCEINLINE HRESULT IPerChannelDbLevel_QueryInterface(IPerChannelDbLevel* This,REFIID riid,void **ppvObject) {
  566. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  567. }
  568. static FORCEINLINE ULONG IPerChannelDbLevel_AddRef(IPerChannelDbLevel* This) {
  569. return This->lpVtbl->AddRef(This);
  570. }
  571. static FORCEINLINE ULONG IPerChannelDbLevel_Release(IPerChannelDbLevel* This) {
  572. return This->lpVtbl->Release(This);
  573. }
  574. /*** IPerChannelDbLevel methods ***/
  575. static FORCEINLINE HRESULT IPerChannelDbLevel_GetChannelCount(IPerChannelDbLevel* This,UINT *pcChannels) {
  576. return This->lpVtbl->GetChannelCount(This,pcChannels);
  577. }
  578. static FORCEINLINE HRESULT IPerChannelDbLevel_GetLevelRange(IPerChannelDbLevel* This,UINT nChannel,float *pfMinLevelDB,float *pfMaxLevelDB,float *pfStepping) {
  579. return This->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping);
  580. }
  581. static FORCEINLINE HRESULT IPerChannelDbLevel_GetLevel(IPerChannelDbLevel* This,UINT nChannel,float *pfLevelDB) {
  582. return This->lpVtbl->GetLevel(This,nChannel,pfLevelDB);
  583. }
  584. static FORCEINLINE HRESULT IPerChannelDbLevel_SetLevel(IPerChannelDbLevel* This,UINT nChannel,float fLevelDB,LPCGUID pguidEventContext) {
  585. return This->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext);
  586. }
  587. static FORCEINLINE HRESULT IPerChannelDbLevel_SetLevelUniform(IPerChannelDbLevel* This,float fLevelDB,LPCGUID pguidEventContext) {
  588. return This->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext);
  589. }
  590. static FORCEINLINE HRESULT IPerChannelDbLevel_SetLevelAllChannels(IPerChannelDbLevel* This,float *aLevelsDB,ULONG cChannels,LPCGUID pguidEventContext) {
  591. return This->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext);
  592. }
  593. #endif
  594. #endif
  595. #endif
  596. #endif /* __IPerChannelDbLevel_INTERFACE_DEFINED__ */
  597. /*****************************************************************************
  598. * IAudioVolumeLevel interface
  599. */
  600. #ifndef __IAudioVolumeLevel_INTERFACE_DEFINED__
  601. #define __IAudioVolumeLevel_INTERFACE_DEFINED__
  602. DEFINE_GUID(IID_IAudioVolumeLevel, 0x7fb7b48f, 0x531d, 0x44a2, 0xbc,0xb3, 0x5a,0xd5,0xa1,0x34,0xb3,0xdc);
  603. #if defined(__cplusplus) && !defined(CINTERFACE)
  604. MIDL_INTERFACE("7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc")
  605. IAudioVolumeLevel : public IPerChannelDbLevel
  606. {
  607. };
  608. #ifdef __CRT_UUID_DECL
  609. __CRT_UUID_DECL(IAudioVolumeLevel, 0x7fb7b48f, 0x531d, 0x44a2, 0xbc,0xb3, 0x5a,0xd5,0xa1,0x34,0xb3,0xdc)
  610. #endif
  611. #else
  612. typedef struct IAudioVolumeLevelVtbl {
  613. BEGIN_INTERFACE
  614. /*** IUnknown methods ***/
  615. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  616. IAudioVolumeLevel *This,
  617. REFIID riid,
  618. void **ppvObject);
  619. ULONG (STDMETHODCALLTYPE *AddRef)(
  620. IAudioVolumeLevel *This);
  621. ULONG (STDMETHODCALLTYPE *Release)(
  622. IAudioVolumeLevel *This);
  623. /*** IPerChannelDbLevel methods ***/
  624. HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
  625. IAudioVolumeLevel *This,
  626. UINT *pcChannels);
  627. HRESULT (STDMETHODCALLTYPE *GetLevelRange)(
  628. IAudioVolumeLevel *This,
  629. UINT nChannel,
  630. float *pfMinLevelDB,
  631. float *pfMaxLevelDB,
  632. float *pfStepping);
  633. HRESULT (STDMETHODCALLTYPE *GetLevel)(
  634. IAudioVolumeLevel *This,
  635. UINT nChannel,
  636. float *pfLevelDB);
  637. HRESULT (STDMETHODCALLTYPE *SetLevel)(
  638. IAudioVolumeLevel *This,
  639. UINT nChannel,
  640. float fLevelDB,
  641. LPCGUID pguidEventContext);
  642. HRESULT (STDMETHODCALLTYPE *SetLevelUniform)(
  643. IAudioVolumeLevel *This,
  644. float fLevelDB,
  645. LPCGUID pguidEventContext);
  646. HRESULT (STDMETHODCALLTYPE *SetLevelAllChannels)(
  647. IAudioVolumeLevel *This,
  648. float *aLevelsDB,
  649. ULONG cChannels,
  650. LPCGUID pguidEventContext);
  651. END_INTERFACE
  652. } IAudioVolumeLevelVtbl;
  653. interface IAudioVolumeLevel {
  654. CONST_VTBL IAudioVolumeLevelVtbl* lpVtbl;
  655. };
  656. #ifdef COBJMACROS
  657. #ifndef WIDL_C_INLINE_WRAPPERS
  658. /*** IUnknown methods ***/
  659. #define IAudioVolumeLevel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  660. #define IAudioVolumeLevel_AddRef(This) (This)->lpVtbl->AddRef(This)
  661. #define IAudioVolumeLevel_Release(This) (This)->lpVtbl->Release(This)
  662. /*** IPerChannelDbLevel methods ***/
  663. #define IAudioVolumeLevel_GetChannelCount(This,pcChannels) (This)->lpVtbl->GetChannelCount(This,pcChannels)
  664. #define IAudioVolumeLevel_GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping) (This)->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping)
  665. #define IAudioVolumeLevel_GetLevel(This,nChannel,pfLevelDB) (This)->lpVtbl->GetLevel(This,nChannel,pfLevelDB)
  666. #define IAudioVolumeLevel_SetLevel(This,nChannel,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext)
  667. #define IAudioVolumeLevel_SetLevelUniform(This,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext)
  668. #define IAudioVolumeLevel_SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext) (This)->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext)
  669. #else
  670. /*** IUnknown methods ***/
  671. static FORCEINLINE HRESULT IAudioVolumeLevel_QueryInterface(IAudioVolumeLevel* This,REFIID riid,void **ppvObject) {
  672. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  673. }
  674. static FORCEINLINE ULONG IAudioVolumeLevel_AddRef(IAudioVolumeLevel* This) {
  675. return This->lpVtbl->AddRef(This);
  676. }
  677. static FORCEINLINE ULONG IAudioVolumeLevel_Release(IAudioVolumeLevel* This) {
  678. return This->lpVtbl->Release(This);
  679. }
  680. /*** IPerChannelDbLevel methods ***/
  681. static FORCEINLINE HRESULT IAudioVolumeLevel_GetChannelCount(IAudioVolumeLevel* This,UINT *pcChannels) {
  682. return This->lpVtbl->GetChannelCount(This,pcChannels);
  683. }
  684. static FORCEINLINE HRESULT IAudioVolumeLevel_GetLevelRange(IAudioVolumeLevel* This,UINT nChannel,float *pfMinLevelDB,float *pfMaxLevelDB,float *pfStepping) {
  685. return This->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping);
  686. }
  687. static FORCEINLINE HRESULT IAudioVolumeLevel_GetLevel(IAudioVolumeLevel* This,UINT nChannel,float *pfLevelDB) {
  688. return This->lpVtbl->GetLevel(This,nChannel,pfLevelDB);
  689. }
  690. static FORCEINLINE HRESULT IAudioVolumeLevel_SetLevel(IAudioVolumeLevel* This,UINT nChannel,float fLevelDB,LPCGUID pguidEventContext) {
  691. return This->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext);
  692. }
  693. static FORCEINLINE HRESULT IAudioVolumeLevel_SetLevelUniform(IAudioVolumeLevel* This,float fLevelDB,LPCGUID pguidEventContext) {
  694. return This->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext);
  695. }
  696. static FORCEINLINE HRESULT IAudioVolumeLevel_SetLevelAllChannels(IAudioVolumeLevel* This,float *aLevelsDB,ULONG cChannels,LPCGUID pguidEventContext) {
  697. return This->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext);
  698. }
  699. #endif
  700. #endif
  701. #endif
  702. #endif /* __IAudioVolumeLevel_INTERFACE_DEFINED__ */
  703. /*****************************************************************************
  704. * IAudioChannelConfig interface
  705. */
  706. #ifndef __IAudioChannelConfig_INTERFACE_DEFINED__
  707. #define __IAudioChannelConfig_INTERFACE_DEFINED__
  708. DEFINE_GUID(IID_IAudioChannelConfig, 0xbb11c46f, 0xec28, 0x493c, 0xb8,0x8a, 0x5d,0xb8,0x80,0x62,0xce,0x98);
  709. #if defined(__cplusplus) && !defined(CINTERFACE)
  710. MIDL_INTERFACE("bb11c46f-ec28-493c-b88a-5db88062ce98")
  711. IAudioChannelConfig : public IUnknown
  712. {
  713. virtual HRESULT STDMETHODCALLTYPE SetChannelConfig(
  714. DWORD dwConfig,
  715. LPCGUID pguidEventContext) = 0;
  716. virtual HRESULT STDMETHODCALLTYPE GetChannelConfig(
  717. DWORD dwConfig,
  718. DWORD *pdwConfig) = 0;
  719. };
  720. #ifdef __CRT_UUID_DECL
  721. __CRT_UUID_DECL(IAudioChannelConfig, 0xbb11c46f, 0xec28, 0x493c, 0xb8,0x8a, 0x5d,0xb8,0x80,0x62,0xce,0x98)
  722. #endif
  723. #else
  724. typedef struct IAudioChannelConfigVtbl {
  725. BEGIN_INTERFACE
  726. /*** IUnknown methods ***/
  727. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  728. IAudioChannelConfig *This,
  729. REFIID riid,
  730. void **ppvObject);
  731. ULONG (STDMETHODCALLTYPE *AddRef)(
  732. IAudioChannelConfig *This);
  733. ULONG (STDMETHODCALLTYPE *Release)(
  734. IAudioChannelConfig *This);
  735. /*** IAudioChannelConfig methods ***/
  736. HRESULT (STDMETHODCALLTYPE *SetChannelConfig)(
  737. IAudioChannelConfig *This,
  738. DWORD dwConfig,
  739. LPCGUID pguidEventContext);
  740. HRESULT (STDMETHODCALLTYPE *GetChannelConfig)(
  741. IAudioChannelConfig *This,
  742. DWORD dwConfig,
  743. DWORD *pdwConfig);
  744. END_INTERFACE
  745. } IAudioChannelConfigVtbl;
  746. interface IAudioChannelConfig {
  747. CONST_VTBL IAudioChannelConfigVtbl* lpVtbl;
  748. };
  749. #ifdef COBJMACROS
  750. #ifndef WIDL_C_INLINE_WRAPPERS
  751. /*** IUnknown methods ***/
  752. #define IAudioChannelConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  753. #define IAudioChannelConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
  754. #define IAudioChannelConfig_Release(This) (This)->lpVtbl->Release(This)
  755. /*** IAudioChannelConfig methods ***/
  756. #define IAudioChannelConfig_SetChannelConfig(This,dwConfig,pguidEventContext) (This)->lpVtbl->SetChannelConfig(This,dwConfig,pguidEventContext)
  757. #define IAudioChannelConfig_GetChannelConfig(This,dwConfig,pdwConfig) (This)->lpVtbl->GetChannelConfig(This,dwConfig,pdwConfig)
  758. #else
  759. /*** IUnknown methods ***/
  760. static FORCEINLINE HRESULT IAudioChannelConfig_QueryInterface(IAudioChannelConfig* This,REFIID riid,void **ppvObject) {
  761. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  762. }
  763. static FORCEINLINE ULONG IAudioChannelConfig_AddRef(IAudioChannelConfig* This) {
  764. return This->lpVtbl->AddRef(This);
  765. }
  766. static FORCEINLINE ULONG IAudioChannelConfig_Release(IAudioChannelConfig* This) {
  767. return This->lpVtbl->Release(This);
  768. }
  769. /*** IAudioChannelConfig methods ***/
  770. static FORCEINLINE HRESULT IAudioChannelConfig_SetChannelConfig(IAudioChannelConfig* This,DWORD dwConfig,LPCGUID pguidEventContext) {
  771. return This->lpVtbl->SetChannelConfig(This,dwConfig,pguidEventContext);
  772. }
  773. static FORCEINLINE HRESULT IAudioChannelConfig_GetChannelConfig(IAudioChannelConfig* This,DWORD dwConfig,DWORD *pdwConfig) {
  774. return This->lpVtbl->GetChannelConfig(This,dwConfig,pdwConfig);
  775. }
  776. #endif
  777. #endif
  778. #endif
  779. #endif /* __IAudioChannelConfig_INTERFACE_DEFINED__ */
  780. /*****************************************************************************
  781. * IAudioLoudness interface
  782. */
  783. #ifndef __IAudioLoudness_INTERFACE_DEFINED__
  784. #define __IAudioLoudness_INTERFACE_DEFINED__
  785. DEFINE_GUID(IID_IAudioLoudness, 0x7d8b1437, 0xdd53, 0x4350, 0x9c,0x1b, 0x1e,0xe2,0x89,0x0b,0xf9,0x38);
  786. #if defined(__cplusplus) && !defined(CINTERFACE)
  787. MIDL_INTERFACE("7d8b1437-dd53-4350-9c1b-1ee2890bf938")
  788. IAudioLoudness : public IUnknown
  789. {
  790. virtual HRESULT STDMETHODCALLTYPE GetEnabled(
  791. WINBOOL *pbEnabled) = 0;
  792. virtual HRESULT STDMETHODCALLTYPE SetEnabled(
  793. WINBOOL bEnabled,
  794. LPCGUID pguidEventContext) = 0;
  795. };
  796. #ifdef __CRT_UUID_DECL
  797. __CRT_UUID_DECL(IAudioLoudness, 0x7d8b1437, 0xdd53, 0x4350, 0x9c,0x1b, 0x1e,0xe2,0x89,0x0b,0xf9,0x38)
  798. #endif
  799. #else
  800. typedef struct IAudioLoudnessVtbl {
  801. BEGIN_INTERFACE
  802. /*** IUnknown methods ***/
  803. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  804. IAudioLoudness *This,
  805. REFIID riid,
  806. void **ppvObject);
  807. ULONG (STDMETHODCALLTYPE *AddRef)(
  808. IAudioLoudness *This);
  809. ULONG (STDMETHODCALLTYPE *Release)(
  810. IAudioLoudness *This);
  811. /*** IAudioLoudness methods ***/
  812. HRESULT (STDMETHODCALLTYPE *GetEnabled)(
  813. IAudioLoudness *This,
  814. WINBOOL *pbEnabled);
  815. HRESULT (STDMETHODCALLTYPE *SetEnabled)(
  816. IAudioLoudness *This,
  817. WINBOOL bEnabled,
  818. LPCGUID pguidEventContext);
  819. END_INTERFACE
  820. } IAudioLoudnessVtbl;
  821. interface IAudioLoudness {
  822. CONST_VTBL IAudioLoudnessVtbl* lpVtbl;
  823. };
  824. #ifdef COBJMACROS
  825. #ifndef WIDL_C_INLINE_WRAPPERS
  826. /*** IUnknown methods ***/
  827. #define IAudioLoudness_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  828. #define IAudioLoudness_AddRef(This) (This)->lpVtbl->AddRef(This)
  829. #define IAudioLoudness_Release(This) (This)->lpVtbl->Release(This)
  830. /*** IAudioLoudness methods ***/
  831. #define IAudioLoudness_GetEnabled(This,pbEnabled) (This)->lpVtbl->GetEnabled(This,pbEnabled)
  832. #define IAudioLoudness_SetEnabled(This,bEnabled,pguidEventContext) (This)->lpVtbl->SetEnabled(This,bEnabled,pguidEventContext)
  833. #else
  834. /*** IUnknown methods ***/
  835. static FORCEINLINE HRESULT IAudioLoudness_QueryInterface(IAudioLoudness* This,REFIID riid,void **ppvObject) {
  836. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  837. }
  838. static FORCEINLINE ULONG IAudioLoudness_AddRef(IAudioLoudness* This) {
  839. return This->lpVtbl->AddRef(This);
  840. }
  841. static FORCEINLINE ULONG IAudioLoudness_Release(IAudioLoudness* This) {
  842. return This->lpVtbl->Release(This);
  843. }
  844. /*** IAudioLoudness methods ***/
  845. static FORCEINLINE HRESULT IAudioLoudness_GetEnabled(IAudioLoudness* This,WINBOOL *pbEnabled) {
  846. return This->lpVtbl->GetEnabled(This,pbEnabled);
  847. }
  848. static FORCEINLINE HRESULT IAudioLoudness_SetEnabled(IAudioLoudness* This,WINBOOL bEnabled,LPCGUID pguidEventContext) {
  849. return This->lpVtbl->SetEnabled(This,bEnabled,pguidEventContext);
  850. }
  851. #endif
  852. #endif
  853. #endif
  854. #endif /* __IAudioLoudness_INTERFACE_DEFINED__ */
  855. /*****************************************************************************
  856. * IAudioInputSelector interface
  857. */
  858. #ifndef __IAudioInputSelector_INTERFACE_DEFINED__
  859. #define __IAudioInputSelector_INTERFACE_DEFINED__
  860. DEFINE_GUID(IID_IAudioInputSelector, 0x4f03dc02, 0x5e6e, 0x4653, 0x8f,0x72, 0xa0,0x30,0xc1,0x23,0xd5,0x98);
  861. #if defined(__cplusplus) && !defined(CINTERFACE)
  862. MIDL_INTERFACE("4f03dc02-5e6e-4653-8f72-a030c123d598")
  863. IAudioInputSelector : public IUnknown
  864. {
  865. virtual HRESULT STDMETHODCALLTYPE GetSelection(
  866. UINT *pnIdSelected) = 0;
  867. virtual HRESULT STDMETHODCALLTYPE SetSelection(
  868. UINT nIdSelect,
  869. LPCGUID pguidEventContext) = 0;
  870. };
  871. #ifdef __CRT_UUID_DECL
  872. __CRT_UUID_DECL(IAudioInputSelector, 0x4f03dc02, 0x5e6e, 0x4653, 0x8f,0x72, 0xa0,0x30,0xc1,0x23,0xd5,0x98)
  873. #endif
  874. #else
  875. typedef struct IAudioInputSelectorVtbl {
  876. BEGIN_INTERFACE
  877. /*** IUnknown methods ***/
  878. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  879. IAudioInputSelector *This,
  880. REFIID riid,
  881. void **ppvObject);
  882. ULONG (STDMETHODCALLTYPE *AddRef)(
  883. IAudioInputSelector *This);
  884. ULONG (STDMETHODCALLTYPE *Release)(
  885. IAudioInputSelector *This);
  886. /*** IAudioInputSelector methods ***/
  887. HRESULT (STDMETHODCALLTYPE *GetSelection)(
  888. IAudioInputSelector *This,
  889. UINT *pnIdSelected);
  890. HRESULT (STDMETHODCALLTYPE *SetSelection)(
  891. IAudioInputSelector *This,
  892. UINT nIdSelect,
  893. LPCGUID pguidEventContext);
  894. END_INTERFACE
  895. } IAudioInputSelectorVtbl;
  896. interface IAudioInputSelector {
  897. CONST_VTBL IAudioInputSelectorVtbl* lpVtbl;
  898. };
  899. #ifdef COBJMACROS
  900. #ifndef WIDL_C_INLINE_WRAPPERS
  901. /*** IUnknown methods ***/
  902. #define IAudioInputSelector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  903. #define IAudioInputSelector_AddRef(This) (This)->lpVtbl->AddRef(This)
  904. #define IAudioInputSelector_Release(This) (This)->lpVtbl->Release(This)
  905. /*** IAudioInputSelector methods ***/
  906. #define IAudioInputSelector_GetSelection(This,pnIdSelected) (This)->lpVtbl->GetSelection(This,pnIdSelected)
  907. #define IAudioInputSelector_SetSelection(This,nIdSelect,pguidEventContext) (This)->lpVtbl->SetSelection(This,nIdSelect,pguidEventContext)
  908. #else
  909. /*** IUnknown methods ***/
  910. static FORCEINLINE HRESULT IAudioInputSelector_QueryInterface(IAudioInputSelector* This,REFIID riid,void **ppvObject) {
  911. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  912. }
  913. static FORCEINLINE ULONG IAudioInputSelector_AddRef(IAudioInputSelector* This) {
  914. return This->lpVtbl->AddRef(This);
  915. }
  916. static FORCEINLINE ULONG IAudioInputSelector_Release(IAudioInputSelector* This) {
  917. return This->lpVtbl->Release(This);
  918. }
  919. /*** IAudioInputSelector methods ***/
  920. static FORCEINLINE HRESULT IAudioInputSelector_GetSelection(IAudioInputSelector* This,UINT *pnIdSelected) {
  921. return This->lpVtbl->GetSelection(This,pnIdSelected);
  922. }
  923. static FORCEINLINE HRESULT IAudioInputSelector_SetSelection(IAudioInputSelector* This,UINT nIdSelect,LPCGUID pguidEventContext) {
  924. return This->lpVtbl->SetSelection(This,nIdSelect,pguidEventContext);
  925. }
  926. #endif
  927. #endif
  928. #endif
  929. #endif /* __IAudioInputSelector_INTERFACE_DEFINED__ */
  930. /*****************************************************************************
  931. * IAudioOutputSelector interface
  932. */
  933. #ifndef __IAudioOutputSelector_INTERFACE_DEFINED__
  934. #define __IAudioOutputSelector_INTERFACE_DEFINED__
  935. DEFINE_GUID(IID_IAudioOutputSelector, 0xbb515f69, 0x94a7, 0x429e, 0x8b,0x9c, 0x27,0x1b,0x3f,0x11,0xa3,0xab);
  936. #if defined(__cplusplus) && !defined(CINTERFACE)
  937. MIDL_INTERFACE("bb515f69-94a7-429e-8b9c-271b3f11a3ab")
  938. IAudioOutputSelector : public IUnknown
  939. {
  940. virtual HRESULT STDMETHODCALLTYPE GetSelection(
  941. UINT *pnIdSelected) = 0;
  942. virtual HRESULT STDMETHODCALLTYPE SetSelection(
  943. UINT nIdSelect,
  944. LPCGUID pguidEventContext) = 0;
  945. };
  946. #ifdef __CRT_UUID_DECL
  947. __CRT_UUID_DECL(IAudioOutputSelector, 0xbb515f69, 0x94a7, 0x429e, 0x8b,0x9c, 0x27,0x1b,0x3f,0x11,0xa3,0xab)
  948. #endif
  949. #else
  950. typedef struct IAudioOutputSelectorVtbl {
  951. BEGIN_INTERFACE
  952. /*** IUnknown methods ***/
  953. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  954. IAudioOutputSelector *This,
  955. REFIID riid,
  956. void **ppvObject);
  957. ULONG (STDMETHODCALLTYPE *AddRef)(
  958. IAudioOutputSelector *This);
  959. ULONG (STDMETHODCALLTYPE *Release)(
  960. IAudioOutputSelector *This);
  961. /*** IAudioOutputSelector methods ***/
  962. HRESULT (STDMETHODCALLTYPE *GetSelection)(
  963. IAudioOutputSelector *This,
  964. UINT *pnIdSelected);
  965. HRESULT (STDMETHODCALLTYPE *SetSelection)(
  966. IAudioOutputSelector *This,
  967. UINT nIdSelect,
  968. LPCGUID pguidEventContext);
  969. END_INTERFACE
  970. } IAudioOutputSelectorVtbl;
  971. interface IAudioOutputSelector {
  972. CONST_VTBL IAudioOutputSelectorVtbl* lpVtbl;
  973. };
  974. #ifdef COBJMACROS
  975. #ifndef WIDL_C_INLINE_WRAPPERS
  976. /*** IUnknown methods ***/
  977. #define IAudioOutputSelector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  978. #define IAudioOutputSelector_AddRef(This) (This)->lpVtbl->AddRef(This)
  979. #define IAudioOutputSelector_Release(This) (This)->lpVtbl->Release(This)
  980. /*** IAudioOutputSelector methods ***/
  981. #define IAudioOutputSelector_GetSelection(This,pnIdSelected) (This)->lpVtbl->GetSelection(This,pnIdSelected)
  982. #define IAudioOutputSelector_SetSelection(This,nIdSelect,pguidEventContext) (This)->lpVtbl->SetSelection(This,nIdSelect,pguidEventContext)
  983. #else
  984. /*** IUnknown methods ***/
  985. static FORCEINLINE HRESULT IAudioOutputSelector_QueryInterface(IAudioOutputSelector* This,REFIID riid,void **ppvObject) {
  986. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  987. }
  988. static FORCEINLINE ULONG IAudioOutputSelector_AddRef(IAudioOutputSelector* This) {
  989. return This->lpVtbl->AddRef(This);
  990. }
  991. static FORCEINLINE ULONG IAudioOutputSelector_Release(IAudioOutputSelector* This) {
  992. return This->lpVtbl->Release(This);
  993. }
  994. /*** IAudioOutputSelector methods ***/
  995. static FORCEINLINE HRESULT IAudioOutputSelector_GetSelection(IAudioOutputSelector* This,UINT *pnIdSelected) {
  996. return This->lpVtbl->GetSelection(This,pnIdSelected);
  997. }
  998. static FORCEINLINE HRESULT IAudioOutputSelector_SetSelection(IAudioOutputSelector* This,UINT nIdSelect,LPCGUID pguidEventContext) {
  999. return This->lpVtbl->SetSelection(This,nIdSelect,pguidEventContext);
  1000. }
  1001. #endif
  1002. #endif
  1003. #endif
  1004. #endif /* __IAudioOutputSelector_INTERFACE_DEFINED__ */
  1005. /*****************************************************************************
  1006. * IAudioMute interface
  1007. */
  1008. #ifndef __IAudioMute_INTERFACE_DEFINED__
  1009. #define __IAudioMute_INTERFACE_DEFINED__
  1010. DEFINE_GUID(IID_IAudioMute, 0xdf45aeea, 0xb74a, 0x4b6b, 0xaf,0xad, 0x23,0x66,0xb6,0xaa,0x01,0x2e);
  1011. #if defined(__cplusplus) && !defined(CINTERFACE)
  1012. MIDL_INTERFACE("df45aeea-b74a-4b6b-afad-2366b6aa012e")
  1013. IAudioMute : public IUnknown
  1014. {
  1015. virtual HRESULT STDMETHODCALLTYPE SetMute(
  1016. WINBOOL bMute,
  1017. LPCGUID pguidEventContext) = 0;
  1018. virtual HRESULT STDMETHODCALLTYPE GetMute(
  1019. WINBOOL *pbMute) = 0;
  1020. };
  1021. #ifdef __CRT_UUID_DECL
  1022. __CRT_UUID_DECL(IAudioMute, 0xdf45aeea, 0xb74a, 0x4b6b, 0xaf,0xad, 0x23,0x66,0xb6,0xaa,0x01,0x2e)
  1023. #endif
  1024. #else
  1025. typedef struct IAudioMuteVtbl {
  1026. BEGIN_INTERFACE
  1027. /*** IUnknown methods ***/
  1028. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1029. IAudioMute *This,
  1030. REFIID riid,
  1031. void **ppvObject);
  1032. ULONG (STDMETHODCALLTYPE *AddRef)(
  1033. IAudioMute *This);
  1034. ULONG (STDMETHODCALLTYPE *Release)(
  1035. IAudioMute *This);
  1036. /*** IAudioMute methods ***/
  1037. HRESULT (STDMETHODCALLTYPE *SetMute)(
  1038. IAudioMute *This,
  1039. WINBOOL bMute,
  1040. LPCGUID pguidEventContext);
  1041. HRESULT (STDMETHODCALLTYPE *GetMute)(
  1042. IAudioMute *This,
  1043. WINBOOL *pbMute);
  1044. END_INTERFACE
  1045. } IAudioMuteVtbl;
  1046. interface IAudioMute {
  1047. CONST_VTBL IAudioMuteVtbl* lpVtbl;
  1048. };
  1049. #ifdef COBJMACROS
  1050. #ifndef WIDL_C_INLINE_WRAPPERS
  1051. /*** IUnknown methods ***/
  1052. #define IAudioMute_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1053. #define IAudioMute_AddRef(This) (This)->lpVtbl->AddRef(This)
  1054. #define IAudioMute_Release(This) (This)->lpVtbl->Release(This)
  1055. /*** IAudioMute methods ***/
  1056. #define IAudioMute_SetMute(This,bMute,pguidEventContext) (This)->lpVtbl->SetMute(This,bMute,pguidEventContext)
  1057. #define IAudioMute_GetMute(This,pbMute) (This)->lpVtbl->GetMute(This,pbMute)
  1058. #else
  1059. /*** IUnknown methods ***/
  1060. static FORCEINLINE HRESULT IAudioMute_QueryInterface(IAudioMute* This,REFIID riid,void **ppvObject) {
  1061. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1062. }
  1063. static FORCEINLINE ULONG IAudioMute_AddRef(IAudioMute* This) {
  1064. return This->lpVtbl->AddRef(This);
  1065. }
  1066. static FORCEINLINE ULONG IAudioMute_Release(IAudioMute* This) {
  1067. return This->lpVtbl->Release(This);
  1068. }
  1069. /*** IAudioMute methods ***/
  1070. static FORCEINLINE HRESULT IAudioMute_SetMute(IAudioMute* This,WINBOOL bMute,LPCGUID pguidEventContext) {
  1071. return This->lpVtbl->SetMute(This,bMute,pguidEventContext);
  1072. }
  1073. static FORCEINLINE HRESULT IAudioMute_GetMute(IAudioMute* This,WINBOOL *pbMute) {
  1074. return This->lpVtbl->GetMute(This,pbMute);
  1075. }
  1076. #endif
  1077. #endif
  1078. #endif
  1079. #endif /* __IAudioMute_INTERFACE_DEFINED__ */
  1080. /*****************************************************************************
  1081. * IAudioBass interface
  1082. */
  1083. #ifndef __IAudioBass_INTERFACE_DEFINED__
  1084. #define __IAudioBass_INTERFACE_DEFINED__
  1085. DEFINE_GUID(IID_IAudioBass, 0xa2b1a1d9, 0x4db3, 0x425d, 0xa2,0xb2, 0xbd,0x33,0x5c,0xb3,0xe2,0xe5);
  1086. #if defined(__cplusplus) && !defined(CINTERFACE)
  1087. MIDL_INTERFACE("a2b1a1d9-4db3-425d-a2b2-bd335cb3e2e5")
  1088. IAudioBass : public IPerChannelDbLevel
  1089. {
  1090. };
  1091. #ifdef __CRT_UUID_DECL
  1092. __CRT_UUID_DECL(IAudioBass, 0xa2b1a1d9, 0x4db3, 0x425d, 0xa2,0xb2, 0xbd,0x33,0x5c,0xb3,0xe2,0xe5)
  1093. #endif
  1094. #else
  1095. typedef struct IAudioBassVtbl {
  1096. BEGIN_INTERFACE
  1097. /*** IUnknown methods ***/
  1098. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1099. IAudioBass *This,
  1100. REFIID riid,
  1101. void **ppvObject);
  1102. ULONG (STDMETHODCALLTYPE *AddRef)(
  1103. IAudioBass *This);
  1104. ULONG (STDMETHODCALLTYPE *Release)(
  1105. IAudioBass *This);
  1106. /*** IPerChannelDbLevel methods ***/
  1107. HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
  1108. IAudioBass *This,
  1109. UINT *pcChannels);
  1110. HRESULT (STDMETHODCALLTYPE *GetLevelRange)(
  1111. IAudioBass *This,
  1112. UINT nChannel,
  1113. float *pfMinLevelDB,
  1114. float *pfMaxLevelDB,
  1115. float *pfStepping);
  1116. HRESULT (STDMETHODCALLTYPE *GetLevel)(
  1117. IAudioBass *This,
  1118. UINT nChannel,
  1119. float *pfLevelDB);
  1120. HRESULT (STDMETHODCALLTYPE *SetLevel)(
  1121. IAudioBass *This,
  1122. UINT nChannel,
  1123. float fLevelDB,
  1124. LPCGUID pguidEventContext);
  1125. HRESULT (STDMETHODCALLTYPE *SetLevelUniform)(
  1126. IAudioBass *This,
  1127. float fLevelDB,
  1128. LPCGUID pguidEventContext);
  1129. HRESULT (STDMETHODCALLTYPE *SetLevelAllChannels)(
  1130. IAudioBass *This,
  1131. float *aLevelsDB,
  1132. ULONG cChannels,
  1133. LPCGUID pguidEventContext);
  1134. END_INTERFACE
  1135. } IAudioBassVtbl;
  1136. interface IAudioBass {
  1137. CONST_VTBL IAudioBassVtbl* lpVtbl;
  1138. };
  1139. #ifdef COBJMACROS
  1140. #ifndef WIDL_C_INLINE_WRAPPERS
  1141. /*** IUnknown methods ***/
  1142. #define IAudioBass_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1143. #define IAudioBass_AddRef(This) (This)->lpVtbl->AddRef(This)
  1144. #define IAudioBass_Release(This) (This)->lpVtbl->Release(This)
  1145. /*** IPerChannelDbLevel methods ***/
  1146. #define IAudioBass_GetChannelCount(This,pcChannels) (This)->lpVtbl->GetChannelCount(This,pcChannels)
  1147. #define IAudioBass_GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping) (This)->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping)
  1148. #define IAudioBass_GetLevel(This,nChannel,pfLevelDB) (This)->lpVtbl->GetLevel(This,nChannel,pfLevelDB)
  1149. #define IAudioBass_SetLevel(This,nChannel,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext)
  1150. #define IAudioBass_SetLevelUniform(This,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext)
  1151. #define IAudioBass_SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext) (This)->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext)
  1152. #else
  1153. /*** IUnknown methods ***/
  1154. static FORCEINLINE HRESULT IAudioBass_QueryInterface(IAudioBass* This,REFIID riid,void **ppvObject) {
  1155. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1156. }
  1157. static FORCEINLINE ULONG IAudioBass_AddRef(IAudioBass* This) {
  1158. return This->lpVtbl->AddRef(This);
  1159. }
  1160. static FORCEINLINE ULONG IAudioBass_Release(IAudioBass* This) {
  1161. return This->lpVtbl->Release(This);
  1162. }
  1163. /*** IPerChannelDbLevel methods ***/
  1164. static FORCEINLINE HRESULT IAudioBass_GetChannelCount(IAudioBass* This,UINT *pcChannels) {
  1165. return This->lpVtbl->GetChannelCount(This,pcChannels);
  1166. }
  1167. static FORCEINLINE HRESULT IAudioBass_GetLevelRange(IAudioBass* This,UINT nChannel,float *pfMinLevelDB,float *pfMaxLevelDB,float *pfStepping) {
  1168. return This->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping);
  1169. }
  1170. static FORCEINLINE HRESULT IAudioBass_GetLevel(IAudioBass* This,UINT nChannel,float *pfLevelDB) {
  1171. return This->lpVtbl->GetLevel(This,nChannel,pfLevelDB);
  1172. }
  1173. static FORCEINLINE HRESULT IAudioBass_SetLevel(IAudioBass* This,UINT nChannel,float fLevelDB,LPCGUID pguidEventContext) {
  1174. return This->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext);
  1175. }
  1176. static FORCEINLINE HRESULT IAudioBass_SetLevelUniform(IAudioBass* This,float fLevelDB,LPCGUID pguidEventContext) {
  1177. return This->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext);
  1178. }
  1179. static FORCEINLINE HRESULT IAudioBass_SetLevelAllChannels(IAudioBass* This,float *aLevelsDB,ULONG cChannels,LPCGUID pguidEventContext) {
  1180. return This->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext);
  1181. }
  1182. #endif
  1183. #endif
  1184. #endif
  1185. #endif /* __IAudioBass_INTERFACE_DEFINED__ */
  1186. /*****************************************************************************
  1187. * IAudioMidRange interface
  1188. */
  1189. #ifndef __IAudioMidRange_INTERFACE_DEFINED__
  1190. #define __IAudioMidRange_INTERFACE_DEFINED__
  1191. DEFINE_GUID(IID_IAudioMidRange, 0x5e54b6d7, 0xb44b, 0x40d9, 0x9a,0x9e, 0xe6,0x91,0xd9,0xce,0x6e,0xdf);
  1192. #if defined(__cplusplus) && !defined(CINTERFACE)
  1193. MIDL_INTERFACE("5e54b6d7-b44b-40d9-9a9e-e691d9ce6edf")
  1194. IAudioMidRange : public IPerChannelDbLevel
  1195. {
  1196. };
  1197. #ifdef __CRT_UUID_DECL
  1198. __CRT_UUID_DECL(IAudioMidRange, 0x5e54b6d7, 0xb44b, 0x40d9, 0x9a,0x9e, 0xe6,0x91,0xd9,0xce,0x6e,0xdf)
  1199. #endif
  1200. #else
  1201. typedef struct IAudioMidRangeVtbl {
  1202. BEGIN_INTERFACE
  1203. /*** IUnknown methods ***/
  1204. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1205. IAudioMidRange *This,
  1206. REFIID riid,
  1207. void **ppvObject);
  1208. ULONG (STDMETHODCALLTYPE *AddRef)(
  1209. IAudioMidRange *This);
  1210. ULONG (STDMETHODCALLTYPE *Release)(
  1211. IAudioMidRange *This);
  1212. /*** IPerChannelDbLevel methods ***/
  1213. HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
  1214. IAudioMidRange *This,
  1215. UINT *pcChannels);
  1216. HRESULT (STDMETHODCALLTYPE *GetLevelRange)(
  1217. IAudioMidRange *This,
  1218. UINT nChannel,
  1219. float *pfMinLevelDB,
  1220. float *pfMaxLevelDB,
  1221. float *pfStepping);
  1222. HRESULT (STDMETHODCALLTYPE *GetLevel)(
  1223. IAudioMidRange *This,
  1224. UINT nChannel,
  1225. float *pfLevelDB);
  1226. HRESULT (STDMETHODCALLTYPE *SetLevel)(
  1227. IAudioMidRange *This,
  1228. UINT nChannel,
  1229. float fLevelDB,
  1230. LPCGUID pguidEventContext);
  1231. HRESULT (STDMETHODCALLTYPE *SetLevelUniform)(
  1232. IAudioMidRange *This,
  1233. float fLevelDB,
  1234. LPCGUID pguidEventContext);
  1235. HRESULT (STDMETHODCALLTYPE *SetLevelAllChannels)(
  1236. IAudioMidRange *This,
  1237. float *aLevelsDB,
  1238. ULONG cChannels,
  1239. LPCGUID pguidEventContext);
  1240. END_INTERFACE
  1241. } IAudioMidRangeVtbl;
  1242. interface IAudioMidRange {
  1243. CONST_VTBL IAudioMidRangeVtbl* lpVtbl;
  1244. };
  1245. #ifdef COBJMACROS
  1246. #ifndef WIDL_C_INLINE_WRAPPERS
  1247. /*** IUnknown methods ***/
  1248. #define IAudioMidRange_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1249. #define IAudioMidRange_AddRef(This) (This)->lpVtbl->AddRef(This)
  1250. #define IAudioMidRange_Release(This) (This)->lpVtbl->Release(This)
  1251. /*** IPerChannelDbLevel methods ***/
  1252. #define IAudioMidRange_GetChannelCount(This,pcChannels) (This)->lpVtbl->GetChannelCount(This,pcChannels)
  1253. #define IAudioMidRange_GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping) (This)->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping)
  1254. #define IAudioMidRange_GetLevel(This,nChannel,pfLevelDB) (This)->lpVtbl->GetLevel(This,nChannel,pfLevelDB)
  1255. #define IAudioMidRange_SetLevel(This,nChannel,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext)
  1256. #define IAudioMidRange_SetLevelUniform(This,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext)
  1257. #define IAudioMidRange_SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext) (This)->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext)
  1258. #else
  1259. /*** IUnknown methods ***/
  1260. static FORCEINLINE HRESULT IAudioMidRange_QueryInterface(IAudioMidRange* This,REFIID riid,void **ppvObject) {
  1261. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1262. }
  1263. static FORCEINLINE ULONG IAudioMidRange_AddRef(IAudioMidRange* This) {
  1264. return This->lpVtbl->AddRef(This);
  1265. }
  1266. static FORCEINLINE ULONG IAudioMidRange_Release(IAudioMidRange* This) {
  1267. return This->lpVtbl->Release(This);
  1268. }
  1269. /*** IPerChannelDbLevel methods ***/
  1270. static FORCEINLINE HRESULT IAudioMidRange_GetChannelCount(IAudioMidRange* This,UINT *pcChannels) {
  1271. return This->lpVtbl->GetChannelCount(This,pcChannels);
  1272. }
  1273. static FORCEINLINE HRESULT IAudioMidRange_GetLevelRange(IAudioMidRange* This,UINT nChannel,float *pfMinLevelDB,float *pfMaxLevelDB,float *pfStepping) {
  1274. return This->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping);
  1275. }
  1276. static FORCEINLINE HRESULT IAudioMidRange_GetLevel(IAudioMidRange* This,UINT nChannel,float *pfLevelDB) {
  1277. return This->lpVtbl->GetLevel(This,nChannel,pfLevelDB);
  1278. }
  1279. static FORCEINLINE HRESULT IAudioMidRange_SetLevel(IAudioMidRange* This,UINT nChannel,float fLevelDB,LPCGUID pguidEventContext) {
  1280. return This->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext);
  1281. }
  1282. static FORCEINLINE HRESULT IAudioMidRange_SetLevelUniform(IAudioMidRange* This,float fLevelDB,LPCGUID pguidEventContext) {
  1283. return This->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext);
  1284. }
  1285. static FORCEINLINE HRESULT IAudioMidRange_SetLevelAllChannels(IAudioMidRange* This,float *aLevelsDB,ULONG cChannels,LPCGUID pguidEventContext) {
  1286. return This->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext);
  1287. }
  1288. #endif
  1289. #endif
  1290. #endif
  1291. #endif /* __IAudioMidRange_INTERFACE_DEFINED__ */
  1292. /*****************************************************************************
  1293. * IAudioTreble interface
  1294. */
  1295. #ifndef __IAudioTreble_INTERFACE_DEFINED__
  1296. #define __IAudioTreble_INTERFACE_DEFINED__
  1297. DEFINE_GUID(IID_IAudioTreble, 0x0a717812, 0x694e, 0x4907, 0xb7,0x4b, 0xba,0xfa,0x5c,0xfd,0xca,0x7b);
  1298. #if defined(__cplusplus) && !defined(CINTERFACE)
  1299. MIDL_INTERFACE("0a717812-694e-4907-b74b-bafa5cfdca7b")
  1300. IAudioTreble : public IPerChannelDbLevel
  1301. {
  1302. };
  1303. #ifdef __CRT_UUID_DECL
  1304. __CRT_UUID_DECL(IAudioTreble, 0x0a717812, 0x694e, 0x4907, 0xb7,0x4b, 0xba,0xfa,0x5c,0xfd,0xca,0x7b)
  1305. #endif
  1306. #else
  1307. typedef struct IAudioTrebleVtbl {
  1308. BEGIN_INTERFACE
  1309. /*** IUnknown methods ***/
  1310. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1311. IAudioTreble *This,
  1312. REFIID riid,
  1313. void **ppvObject);
  1314. ULONG (STDMETHODCALLTYPE *AddRef)(
  1315. IAudioTreble *This);
  1316. ULONG (STDMETHODCALLTYPE *Release)(
  1317. IAudioTreble *This);
  1318. /*** IPerChannelDbLevel methods ***/
  1319. HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
  1320. IAudioTreble *This,
  1321. UINT *pcChannels);
  1322. HRESULT (STDMETHODCALLTYPE *GetLevelRange)(
  1323. IAudioTreble *This,
  1324. UINT nChannel,
  1325. float *pfMinLevelDB,
  1326. float *pfMaxLevelDB,
  1327. float *pfStepping);
  1328. HRESULT (STDMETHODCALLTYPE *GetLevel)(
  1329. IAudioTreble *This,
  1330. UINT nChannel,
  1331. float *pfLevelDB);
  1332. HRESULT (STDMETHODCALLTYPE *SetLevel)(
  1333. IAudioTreble *This,
  1334. UINT nChannel,
  1335. float fLevelDB,
  1336. LPCGUID pguidEventContext);
  1337. HRESULT (STDMETHODCALLTYPE *SetLevelUniform)(
  1338. IAudioTreble *This,
  1339. float fLevelDB,
  1340. LPCGUID pguidEventContext);
  1341. HRESULT (STDMETHODCALLTYPE *SetLevelAllChannels)(
  1342. IAudioTreble *This,
  1343. float *aLevelsDB,
  1344. ULONG cChannels,
  1345. LPCGUID pguidEventContext);
  1346. END_INTERFACE
  1347. } IAudioTrebleVtbl;
  1348. interface IAudioTreble {
  1349. CONST_VTBL IAudioTrebleVtbl* lpVtbl;
  1350. };
  1351. #ifdef COBJMACROS
  1352. #ifndef WIDL_C_INLINE_WRAPPERS
  1353. /*** IUnknown methods ***/
  1354. #define IAudioTreble_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1355. #define IAudioTreble_AddRef(This) (This)->lpVtbl->AddRef(This)
  1356. #define IAudioTreble_Release(This) (This)->lpVtbl->Release(This)
  1357. /*** IPerChannelDbLevel methods ***/
  1358. #define IAudioTreble_GetChannelCount(This,pcChannels) (This)->lpVtbl->GetChannelCount(This,pcChannels)
  1359. #define IAudioTreble_GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping) (This)->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping)
  1360. #define IAudioTreble_GetLevel(This,nChannel,pfLevelDB) (This)->lpVtbl->GetLevel(This,nChannel,pfLevelDB)
  1361. #define IAudioTreble_SetLevel(This,nChannel,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext)
  1362. #define IAudioTreble_SetLevelUniform(This,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext)
  1363. #define IAudioTreble_SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext) (This)->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext)
  1364. #else
  1365. /*** IUnknown methods ***/
  1366. static FORCEINLINE HRESULT IAudioTreble_QueryInterface(IAudioTreble* This,REFIID riid,void **ppvObject) {
  1367. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1368. }
  1369. static FORCEINLINE ULONG IAudioTreble_AddRef(IAudioTreble* This) {
  1370. return This->lpVtbl->AddRef(This);
  1371. }
  1372. static FORCEINLINE ULONG IAudioTreble_Release(IAudioTreble* This) {
  1373. return This->lpVtbl->Release(This);
  1374. }
  1375. /*** IPerChannelDbLevel methods ***/
  1376. static FORCEINLINE HRESULT IAudioTreble_GetChannelCount(IAudioTreble* This,UINT *pcChannels) {
  1377. return This->lpVtbl->GetChannelCount(This,pcChannels);
  1378. }
  1379. static FORCEINLINE HRESULT IAudioTreble_GetLevelRange(IAudioTreble* This,UINT nChannel,float *pfMinLevelDB,float *pfMaxLevelDB,float *pfStepping) {
  1380. return This->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping);
  1381. }
  1382. static FORCEINLINE HRESULT IAudioTreble_GetLevel(IAudioTreble* This,UINT nChannel,float *pfLevelDB) {
  1383. return This->lpVtbl->GetLevel(This,nChannel,pfLevelDB);
  1384. }
  1385. static FORCEINLINE HRESULT IAudioTreble_SetLevel(IAudioTreble* This,UINT nChannel,float fLevelDB,LPCGUID pguidEventContext) {
  1386. return This->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext);
  1387. }
  1388. static FORCEINLINE HRESULT IAudioTreble_SetLevelUniform(IAudioTreble* This,float fLevelDB,LPCGUID pguidEventContext) {
  1389. return This->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext);
  1390. }
  1391. static FORCEINLINE HRESULT IAudioTreble_SetLevelAllChannels(IAudioTreble* This,float *aLevelsDB,ULONG cChannels,LPCGUID pguidEventContext) {
  1392. return This->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext);
  1393. }
  1394. #endif
  1395. #endif
  1396. #endif
  1397. #endif /* __IAudioTreble_INTERFACE_DEFINED__ */
  1398. /*****************************************************************************
  1399. * IAudioAutoGainControl interface
  1400. */
  1401. #ifndef __IAudioAutoGainControl_INTERFACE_DEFINED__
  1402. #define __IAudioAutoGainControl_INTERFACE_DEFINED__
  1403. DEFINE_GUID(IID_IAudioAutoGainControl, 0x85401fd4, 0x6de4, 0x4b9d, 0x98,0x69, 0x2d,0x67,0x53,0xa8,0x2f,0x3c);
  1404. #if defined(__cplusplus) && !defined(CINTERFACE)
  1405. MIDL_INTERFACE("85401fd4-6de4-4b9d-9869-2d6753a82f3c")
  1406. IAudioAutoGainControl : public IUnknown
  1407. {
  1408. virtual HRESULT STDMETHODCALLTYPE GetEnabled(
  1409. WINBOOL bEnabled,
  1410. LPCGUID pguidEventContext) = 0;
  1411. virtual HRESULT STDMETHODCALLTYPE GetMute(
  1412. WINBOOL *pbEnabled) = 0;
  1413. };
  1414. #ifdef __CRT_UUID_DECL
  1415. __CRT_UUID_DECL(IAudioAutoGainControl, 0x85401fd4, 0x6de4, 0x4b9d, 0x98,0x69, 0x2d,0x67,0x53,0xa8,0x2f,0x3c)
  1416. #endif
  1417. #else
  1418. typedef struct IAudioAutoGainControlVtbl {
  1419. BEGIN_INTERFACE
  1420. /*** IUnknown methods ***/
  1421. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1422. IAudioAutoGainControl *This,
  1423. REFIID riid,
  1424. void **ppvObject);
  1425. ULONG (STDMETHODCALLTYPE *AddRef)(
  1426. IAudioAutoGainControl *This);
  1427. ULONG (STDMETHODCALLTYPE *Release)(
  1428. IAudioAutoGainControl *This);
  1429. /*** IAudioAutoGainControl methods ***/
  1430. HRESULT (STDMETHODCALLTYPE *GetEnabled)(
  1431. IAudioAutoGainControl *This,
  1432. WINBOOL bEnabled,
  1433. LPCGUID pguidEventContext);
  1434. HRESULT (STDMETHODCALLTYPE *GetMute)(
  1435. IAudioAutoGainControl *This,
  1436. WINBOOL *pbEnabled);
  1437. END_INTERFACE
  1438. } IAudioAutoGainControlVtbl;
  1439. interface IAudioAutoGainControl {
  1440. CONST_VTBL IAudioAutoGainControlVtbl* lpVtbl;
  1441. };
  1442. #ifdef COBJMACROS
  1443. #ifndef WIDL_C_INLINE_WRAPPERS
  1444. /*** IUnknown methods ***/
  1445. #define IAudioAutoGainControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1446. #define IAudioAutoGainControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  1447. #define IAudioAutoGainControl_Release(This) (This)->lpVtbl->Release(This)
  1448. /*** IAudioAutoGainControl methods ***/
  1449. #define IAudioAutoGainControl_GetEnabled(This,bEnabled,pguidEventContext) (This)->lpVtbl->GetEnabled(This,bEnabled,pguidEventContext)
  1450. #define IAudioAutoGainControl_GetMute(This,pbEnabled) (This)->lpVtbl->GetMute(This,pbEnabled)
  1451. #else
  1452. /*** IUnknown methods ***/
  1453. static FORCEINLINE HRESULT IAudioAutoGainControl_QueryInterface(IAudioAutoGainControl* This,REFIID riid,void **ppvObject) {
  1454. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1455. }
  1456. static FORCEINLINE ULONG IAudioAutoGainControl_AddRef(IAudioAutoGainControl* This) {
  1457. return This->lpVtbl->AddRef(This);
  1458. }
  1459. static FORCEINLINE ULONG IAudioAutoGainControl_Release(IAudioAutoGainControl* This) {
  1460. return This->lpVtbl->Release(This);
  1461. }
  1462. /*** IAudioAutoGainControl methods ***/
  1463. static FORCEINLINE HRESULT IAudioAutoGainControl_GetEnabled(IAudioAutoGainControl* This,WINBOOL bEnabled,LPCGUID pguidEventContext) {
  1464. return This->lpVtbl->GetEnabled(This,bEnabled,pguidEventContext);
  1465. }
  1466. static FORCEINLINE HRESULT IAudioAutoGainControl_GetMute(IAudioAutoGainControl* This,WINBOOL *pbEnabled) {
  1467. return This->lpVtbl->GetMute(This,pbEnabled);
  1468. }
  1469. #endif
  1470. #endif
  1471. #endif
  1472. #endif /* __IAudioAutoGainControl_INTERFACE_DEFINED__ */
  1473. /*****************************************************************************
  1474. * IAudioPeakMeter interface
  1475. */
  1476. #ifndef __IAudioPeakMeter_INTERFACE_DEFINED__
  1477. #define __IAudioPeakMeter_INTERFACE_DEFINED__
  1478. DEFINE_GUID(IID_IAudioPeakMeter, 0xdd79923c, 0x0599, 0x45e0, 0xb8,0xb6, 0xc8,0xdf,0x7d,0xb6,0xe7,0x96);
  1479. #if defined(__cplusplus) && !defined(CINTERFACE)
  1480. MIDL_INTERFACE("dd79923c-0599-45e0-b8b6-c8df7db6e796")
  1481. IAudioPeakMeter : public IUnknown
  1482. {
  1483. virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
  1484. UINT *pcChannels) = 0;
  1485. virtual HRESULT STDMETHODCALLTYPE GetLevel(
  1486. UINT nChannel,
  1487. float *pfLevel) = 0;
  1488. };
  1489. #ifdef __CRT_UUID_DECL
  1490. __CRT_UUID_DECL(IAudioPeakMeter, 0xdd79923c, 0x0599, 0x45e0, 0xb8,0xb6, 0xc8,0xdf,0x7d,0xb6,0xe7,0x96)
  1491. #endif
  1492. #else
  1493. typedef struct IAudioPeakMeterVtbl {
  1494. BEGIN_INTERFACE
  1495. /*** IUnknown methods ***/
  1496. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1497. IAudioPeakMeter *This,
  1498. REFIID riid,
  1499. void **ppvObject);
  1500. ULONG (STDMETHODCALLTYPE *AddRef)(
  1501. IAudioPeakMeter *This);
  1502. ULONG (STDMETHODCALLTYPE *Release)(
  1503. IAudioPeakMeter *This);
  1504. /*** IAudioPeakMeter methods ***/
  1505. HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
  1506. IAudioPeakMeter *This,
  1507. UINT *pcChannels);
  1508. HRESULT (STDMETHODCALLTYPE *GetLevel)(
  1509. IAudioPeakMeter *This,
  1510. UINT nChannel,
  1511. float *pfLevel);
  1512. END_INTERFACE
  1513. } IAudioPeakMeterVtbl;
  1514. interface IAudioPeakMeter {
  1515. CONST_VTBL IAudioPeakMeterVtbl* lpVtbl;
  1516. };
  1517. #ifdef COBJMACROS
  1518. #ifndef WIDL_C_INLINE_WRAPPERS
  1519. /*** IUnknown methods ***/
  1520. #define IAudioPeakMeter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1521. #define IAudioPeakMeter_AddRef(This) (This)->lpVtbl->AddRef(This)
  1522. #define IAudioPeakMeter_Release(This) (This)->lpVtbl->Release(This)
  1523. /*** IAudioPeakMeter methods ***/
  1524. #define IAudioPeakMeter_GetChannelCount(This,pcChannels) (This)->lpVtbl->GetChannelCount(This,pcChannels)
  1525. #define IAudioPeakMeter_GetLevel(This,nChannel,pfLevel) (This)->lpVtbl->GetLevel(This,nChannel,pfLevel)
  1526. #else
  1527. /*** IUnknown methods ***/
  1528. static FORCEINLINE HRESULT IAudioPeakMeter_QueryInterface(IAudioPeakMeter* This,REFIID riid,void **ppvObject) {
  1529. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1530. }
  1531. static FORCEINLINE ULONG IAudioPeakMeter_AddRef(IAudioPeakMeter* This) {
  1532. return This->lpVtbl->AddRef(This);
  1533. }
  1534. static FORCEINLINE ULONG IAudioPeakMeter_Release(IAudioPeakMeter* This) {
  1535. return This->lpVtbl->Release(This);
  1536. }
  1537. /*** IAudioPeakMeter methods ***/
  1538. static FORCEINLINE HRESULT IAudioPeakMeter_GetChannelCount(IAudioPeakMeter* This,UINT *pcChannels) {
  1539. return This->lpVtbl->GetChannelCount(This,pcChannels);
  1540. }
  1541. static FORCEINLINE HRESULT IAudioPeakMeter_GetLevel(IAudioPeakMeter* This,UINT nChannel,float *pfLevel) {
  1542. return This->lpVtbl->GetLevel(This,nChannel,pfLevel);
  1543. }
  1544. #endif
  1545. #endif
  1546. #endif
  1547. #endif /* __IAudioPeakMeter_INTERFACE_DEFINED__ */
  1548. /*****************************************************************************
  1549. * IDeviceSpecificProperty interface
  1550. */
  1551. #ifndef __IDeviceSpecificProperty_INTERFACE_DEFINED__
  1552. #define __IDeviceSpecificProperty_INTERFACE_DEFINED__
  1553. DEFINE_GUID(IID_IDeviceSpecificProperty, 0x3b22bcbf, 0x2586, 0x4af0, 0x85,0x83, 0x20,0x5d,0x39,0x1b,0x80,0x7c);
  1554. #if defined(__cplusplus) && !defined(CINTERFACE)
  1555. MIDL_INTERFACE("3b22bcbf-2586-4af0-8583-205d391b807c")
  1556. IDeviceSpecificProperty : public IUnknown
  1557. {
  1558. virtual HRESULT STDMETHODCALLTYPE GetType(
  1559. VARTYPE *pVType) = 0;
  1560. virtual HRESULT STDMETHODCALLTYPE GetValue(
  1561. VARTYPE *pvType,
  1562. DWORD *pcbValue) = 0;
  1563. virtual HRESULT STDMETHODCALLTYPE SetValue(
  1564. void *pvValue,
  1565. DWORD cbValue,
  1566. LPCGUID pguidEventContext) = 0;
  1567. virtual HRESULT STDMETHODCALLTYPE Get4BRange(
  1568. LONG *plMin,
  1569. LONG *plMax,
  1570. LONG *plStepping) = 0;
  1571. };
  1572. #ifdef __CRT_UUID_DECL
  1573. __CRT_UUID_DECL(IDeviceSpecificProperty, 0x3b22bcbf, 0x2586, 0x4af0, 0x85,0x83, 0x20,0x5d,0x39,0x1b,0x80,0x7c)
  1574. #endif
  1575. #else
  1576. typedef struct IDeviceSpecificPropertyVtbl {
  1577. BEGIN_INTERFACE
  1578. /*** IUnknown methods ***/
  1579. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1580. IDeviceSpecificProperty *This,
  1581. REFIID riid,
  1582. void **ppvObject);
  1583. ULONG (STDMETHODCALLTYPE *AddRef)(
  1584. IDeviceSpecificProperty *This);
  1585. ULONG (STDMETHODCALLTYPE *Release)(
  1586. IDeviceSpecificProperty *This);
  1587. /*** IDeviceSpecificProperty methods ***/
  1588. HRESULT (STDMETHODCALLTYPE *GetType)(
  1589. IDeviceSpecificProperty *This,
  1590. VARTYPE *pVType);
  1591. HRESULT (STDMETHODCALLTYPE *GetValue)(
  1592. IDeviceSpecificProperty *This,
  1593. VARTYPE *pvType,
  1594. DWORD *pcbValue);
  1595. HRESULT (STDMETHODCALLTYPE *SetValue)(
  1596. IDeviceSpecificProperty *This,
  1597. void *pvValue,
  1598. DWORD cbValue,
  1599. LPCGUID pguidEventContext);
  1600. HRESULT (STDMETHODCALLTYPE *Get4BRange)(
  1601. IDeviceSpecificProperty *This,
  1602. LONG *plMin,
  1603. LONG *plMax,
  1604. LONG *plStepping);
  1605. END_INTERFACE
  1606. } IDeviceSpecificPropertyVtbl;
  1607. interface IDeviceSpecificProperty {
  1608. CONST_VTBL IDeviceSpecificPropertyVtbl* lpVtbl;
  1609. };
  1610. #ifdef COBJMACROS
  1611. #ifndef WIDL_C_INLINE_WRAPPERS
  1612. /*** IUnknown methods ***/
  1613. #define IDeviceSpecificProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1614. #define IDeviceSpecificProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
  1615. #define IDeviceSpecificProperty_Release(This) (This)->lpVtbl->Release(This)
  1616. /*** IDeviceSpecificProperty methods ***/
  1617. #define IDeviceSpecificProperty_GetType(This,pVType) (This)->lpVtbl->GetType(This,pVType)
  1618. #define IDeviceSpecificProperty_GetValue(This,pvType,pcbValue) (This)->lpVtbl->GetValue(This,pvType,pcbValue)
  1619. #define IDeviceSpecificProperty_SetValue(This,pvValue,cbValue,pguidEventContext) (This)->lpVtbl->SetValue(This,pvValue,cbValue,pguidEventContext)
  1620. #define IDeviceSpecificProperty_Get4BRange(This,plMin,plMax,plStepping) (This)->lpVtbl->Get4BRange(This,plMin,plMax,plStepping)
  1621. #else
  1622. /*** IUnknown methods ***/
  1623. static FORCEINLINE HRESULT IDeviceSpecificProperty_QueryInterface(IDeviceSpecificProperty* This,REFIID riid,void **ppvObject) {
  1624. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1625. }
  1626. static FORCEINLINE ULONG IDeviceSpecificProperty_AddRef(IDeviceSpecificProperty* This) {
  1627. return This->lpVtbl->AddRef(This);
  1628. }
  1629. static FORCEINLINE ULONG IDeviceSpecificProperty_Release(IDeviceSpecificProperty* This) {
  1630. return This->lpVtbl->Release(This);
  1631. }
  1632. /*** IDeviceSpecificProperty methods ***/
  1633. static FORCEINLINE HRESULT IDeviceSpecificProperty_GetType(IDeviceSpecificProperty* This,VARTYPE *pVType) {
  1634. return This->lpVtbl->GetType(This,pVType);
  1635. }
  1636. static FORCEINLINE HRESULT IDeviceSpecificProperty_GetValue(IDeviceSpecificProperty* This,VARTYPE *pvType,DWORD *pcbValue) {
  1637. return This->lpVtbl->GetValue(This,pvType,pcbValue);
  1638. }
  1639. static FORCEINLINE HRESULT IDeviceSpecificProperty_SetValue(IDeviceSpecificProperty* This,void *pvValue,DWORD cbValue,LPCGUID pguidEventContext) {
  1640. return This->lpVtbl->SetValue(This,pvValue,cbValue,pguidEventContext);
  1641. }
  1642. static FORCEINLINE HRESULT IDeviceSpecificProperty_Get4BRange(IDeviceSpecificProperty* This,LONG *plMin,LONG *plMax,LONG *plStepping) {
  1643. return This->lpVtbl->Get4BRange(This,plMin,plMax,plStepping);
  1644. }
  1645. #endif
  1646. #endif
  1647. #endif
  1648. #endif /* __IDeviceSpecificProperty_INTERFACE_DEFINED__ */
  1649. /*****************************************************************************
  1650. * IKsFormatSupport interface
  1651. */
  1652. #ifndef __IKsFormatSupport_INTERFACE_DEFINED__
  1653. #define __IKsFormatSupport_INTERFACE_DEFINED__
  1654. DEFINE_GUID(IID_IKsFormatSupport, 0x3cb4a69d, 0xbb6f, 0x4d2b, 0x95,0xb7, 0x45,0x2d,0x2c,0x15,0x5d,0xb5);
  1655. #if defined(__cplusplus) && !defined(CINTERFACE)
  1656. MIDL_INTERFACE("3cb4a69d-bb6f-4d2b-95b7-452d2c155db5")
  1657. IKsFormatSupport : public IUnknown
  1658. {
  1659. virtual HRESULT STDMETHODCALLTYPE IsFormatSupported(
  1660. PKSDATAFORMAT pKsFormat,
  1661. DWORD cbFormat,
  1662. WINBOOL *pbSupported) = 0;
  1663. virtual HRESULT STDMETHODCALLTYPE GetDevicePreferredFormat(
  1664. PKSDATAFORMAT *ppKsFormat) = 0;
  1665. };
  1666. #ifdef __CRT_UUID_DECL
  1667. __CRT_UUID_DECL(IKsFormatSupport, 0x3cb4a69d, 0xbb6f, 0x4d2b, 0x95,0xb7, 0x45,0x2d,0x2c,0x15,0x5d,0xb5)
  1668. #endif
  1669. #else
  1670. typedef struct IKsFormatSupportVtbl {
  1671. BEGIN_INTERFACE
  1672. /*** IUnknown methods ***/
  1673. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1674. IKsFormatSupport *This,
  1675. REFIID riid,
  1676. void **ppvObject);
  1677. ULONG (STDMETHODCALLTYPE *AddRef)(
  1678. IKsFormatSupport *This);
  1679. ULONG (STDMETHODCALLTYPE *Release)(
  1680. IKsFormatSupport *This);
  1681. /*** IKsFormatSupport methods ***/
  1682. HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
  1683. IKsFormatSupport *This,
  1684. PKSDATAFORMAT pKsFormat,
  1685. DWORD cbFormat,
  1686. WINBOOL *pbSupported);
  1687. HRESULT (STDMETHODCALLTYPE *GetDevicePreferredFormat)(
  1688. IKsFormatSupport *This,
  1689. PKSDATAFORMAT *ppKsFormat);
  1690. END_INTERFACE
  1691. } IKsFormatSupportVtbl;
  1692. interface IKsFormatSupport {
  1693. CONST_VTBL IKsFormatSupportVtbl* lpVtbl;
  1694. };
  1695. #ifdef COBJMACROS
  1696. #ifndef WIDL_C_INLINE_WRAPPERS
  1697. /*** IUnknown methods ***/
  1698. #define IKsFormatSupport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1699. #define IKsFormatSupport_AddRef(This) (This)->lpVtbl->AddRef(This)
  1700. #define IKsFormatSupport_Release(This) (This)->lpVtbl->Release(This)
  1701. /*** IKsFormatSupport methods ***/
  1702. #define IKsFormatSupport_IsFormatSupported(This,pKsFormat,cbFormat,pbSupported) (This)->lpVtbl->IsFormatSupported(This,pKsFormat,cbFormat,pbSupported)
  1703. #define IKsFormatSupport_GetDevicePreferredFormat(This,ppKsFormat) (This)->lpVtbl->GetDevicePreferredFormat(This,ppKsFormat)
  1704. #else
  1705. /*** IUnknown methods ***/
  1706. static FORCEINLINE HRESULT IKsFormatSupport_QueryInterface(IKsFormatSupport* This,REFIID riid,void **ppvObject) {
  1707. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1708. }
  1709. static FORCEINLINE ULONG IKsFormatSupport_AddRef(IKsFormatSupport* This) {
  1710. return This->lpVtbl->AddRef(This);
  1711. }
  1712. static FORCEINLINE ULONG IKsFormatSupport_Release(IKsFormatSupport* This) {
  1713. return This->lpVtbl->Release(This);
  1714. }
  1715. /*** IKsFormatSupport methods ***/
  1716. static FORCEINLINE HRESULT IKsFormatSupport_IsFormatSupported(IKsFormatSupport* This,PKSDATAFORMAT pKsFormat,DWORD cbFormat,WINBOOL *pbSupported) {
  1717. return This->lpVtbl->IsFormatSupported(This,pKsFormat,cbFormat,pbSupported);
  1718. }
  1719. static FORCEINLINE HRESULT IKsFormatSupport_GetDevicePreferredFormat(IKsFormatSupport* This,PKSDATAFORMAT *ppKsFormat) {
  1720. return This->lpVtbl->GetDevicePreferredFormat(This,ppKsFormat);
  1721. }
  1722. #endif
  1723. #endif
  1724. #endif
  1725. #endif /* __IKsFormatSupport_INTERFACE_DEFINED__ */
  1726. /*****************************************************************************
  1727. * IKsJackDescription interface
  1728. */
  1729. #ifndef __IKsJackDescription_INTERFACE_DEFINED__
  1730. #define __IKsJackDescription_INTERFACE_DEFINED__
  1731. DEFINE_GUID(IID_IKsJackDescription, 0x4509f757, 0x2d46, 0x4637, 0x8e,0x62, 0xce,0x7d,0xb9,0x44,0xf5,0x7b);
  1732. #if defined(__cplusplus) && !defined(CINTERFACE)
  1733. MIDL_INTERFACE("4509f757-2d46-4637-8e62-ce7db944f57b")
  1734. IKsJackDescription : public IUnknown
  1735. {
  1736. virtual HRESULT STDMETHODCALLTYPE GetJackCount(
  1737. UINT *pcJacks) = 0;
  1738. virtual HRESULT STDMETHODCALLTYPE GetJackDescription(
  1739. UINT nJack,
  1740. KSJACK_DESCRIPTION *pDescription) = 0;
  1741. };
  1742. #ifdef __CRT_UUID_DECL
  1743. __CRT_UUID_DECL(IKsJackDescription, 0x4509f757, 0x2d46, 0x4637, 0x8e,0x62, 0xce,0x7d,0xb9,0x44,0xf5,0x7b)
  1744. #endif
  1745. #else
  1746. typedef struct IKsJackDescriptionVtbl {
  1747. BEGIN_INTERFACE
  1748. /*** IUnknown methods ***/
  1749. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1750. IKsJackDescription *This,
  1751. REFIID riid,
  1752. void **ppvObject);
  1753. ULONG (STDMETHODCALLTYPE *AddRef)(
  1754. IKsJackDescription *This);
  1755. ULONG (STDMETHODCALLTYPE *Release)(
  1756. IKsJackDescription *This);
  1757. /*** IKsJackDescription methods ***/
  1758. HRESULT (STDMETHODCALLTYPE *GetJackCount)(
  1759. IKsJackDescription *This,
  1760. UINT *pcJacks);
  1761. HRESULT (STDMETHODCALLTYPE *GetJackDescription)(
  1762. IKsJackDescription *This,
  1763. UINT nJack,
  1764. KSJACK_DESCRIPTION *pDescription);
  1765. END_INTERFACE
  1766. } IKsJackDescriptionVtbl;
  1767. interface IKsJackDescription {
  1768. CONST_VTBL IKsJackDescriptionVtbl* lpVtbl;
  1769. };
  1770. #ifdef COBJMACROS
  1771. #ifndef WIDL_C_INLINE_WRAPPERS
  1772. /*** IUnknown methods ***/
  1773. #define IKsJackDescription_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1774. #define IKsJackDescription_AddRef(This) (This)->lpVtbl->AddRef(This)
  1775. #define IKsJackDescription_Release(This) (This)->lpVtbl->Release(This)
  1776. /*** IKsJackDescription methods ***/
  1777. #define IKsJackDescription_GetJackCount(This,pcJacks) (This)->lpVtbl->GetJackCount(This,pcJacks)
  1778. #define IKsJackDescription_GetJackDescription(This,nJack,pDescription) (This)->lpVtbl->GetJackDescription(This,nJack,pDescription)
  1779. #else
  1780. /*** IUnknown methods ***/
  1781. static FORCEINLINE HRESULT IKsJackDescription_QueryInterface(IKsJackDescription* This,REFIID riid,void **ppvObject) {
  1782. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1783. }
  1784. static FORCEINLINE ULONG IKsJackDescription_AddRef(IKsJackDescription* This) {
  1785. return This->lpVtbl->AddRef(This);
  1786. }
  1787. static FORCEINLINE ULONG IKsJackDescription_Release(IKsJackDescription* This) {
  1788. return This->lpVtbl->Release(This);
  1789. }
  1790. /*** IKsJackDescription methods ***/
  1791. static FORCEINLINE HRESULT IKsJackDescription_GetJackCount(IKsJackDescription* This,UINT *pcJacks) {
  1792. return This->lpVtbl->GetJackCount(This,pcJacks);
  1793. }
  1794. static FORCEINLINE HRESULT IKsJackDescription_GetJackDescription(IKsJackDescription* This,UINT nJack,KSJACK_DESCRIPTION *pDescription) {
  1795. return This->lpVtbl->GetJackDescription(This,nJack,pDescription);
  1796. }
  1797. #endif
  1798. #endif
  1799. #endif
  1800. #endif /* __IKsJackDescription_INTERFACE_DEFINED__ */
  1801. /*****************************************************************************
  1802. * IKsJackDescription2 interface
  1803. */
  1804. #ifndef __IKsJackDescription2_INTERFACE_DEFINED__
  1805. #define __IKsJackDescription2_INTERFACE_DEFINED__
  1806. DEFINE_GUID(IID_IKsJackDescription2, 0x478f3a9b, 0xe0c9, 0x4827, 0x92,0x28, 0x6f,0x55,0x05,0xff,0xe7,0x6a);
  1807. #if defined(__cplusplus) && !defined(CINTERFACE)
  1808. MIDL_INTERFACE("478f3a9b-e0c9-4827-9228-6f5505ffe76a")
  1809. IKsJackDescription2 : public IUnknown
  1810. {
  1811. virtual HRESULT STDMETHODCALLTYPE GetJackCount(
  1812. UINT *pcJacks) = 0;
  1813. virtual HRESULT STDMETHODCALLTYPE GetJackDescription2(
  1814. UINT nJack,
  1815. KSJACK_DESCRIPTION2 *pDescription2) = 0;
  1816. };
  1817. #ifdef __CRT_UUID_DECL
  1818. __CRT_UUID_DECL(IKsJackDescription2, 0x478f3a9b, 0xe0c9, 0x4827, 0x92,0x28, 0x6f,0x55,0x05,0xff,0xe7,0x6a)
  1819. #endif
  1820. #else
  1821. typedef struct IKsJackDescription2Vtbl {
  1822. BEGIN_INTERFACE
  1823. /*** IUnknown methods ***/
  1824. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1825. IKsJackDescription2 *This,
  1826. REFIID riid,
  1827. void **ppvObject);
  1828. ULONG (STDMETHODCALLTYPE *AddRef)(
  1829. IKsJackDescription2 *This);
  1830. ULONG (STDMETHODCALLTYPE *Release)(
  1831. IKsJackDescription2 *This);
  1832. /*** IKsJackDescription2 methods ***/
  1833. HRESULT (STDMETHODCALLTYPE *GetJackCount)(
  1834. IKsJackDescription2 *This,
  1835. UINT *pcJacks);
  1836. HRESULT (STDMETHODCALLTYPE *GetJackDescription2)(
  1837. IKsJackDescription2 *This,
  1838. UINT nJack,
  1839. KSJACK_DESCRIPTION2 *pDescription2);
  1840. END_INTERFACE
  1841. } IKsJackDescription2Vtbl;
  1842. interface IKsJackDescription2 {
  1843. CONST_VTBL IKsJackDescription2Vtbl* lpVtbl;
  1844. };
  1845. #ifdef COBJMACROS
  1846. #ifndef WIDL_C_INLINE_WRAPPERS
  1847. /*** IUnknown methods ***/
  1848. #define IKsJackDescription2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1849. #define IKsJackDescription2_AddRef(This) (This)->lpVtbl->AddRef(This)
  1850. #define IKsJackDescription2_Release(This) (This)->lpVtbl->Release(This)
  1851. /*** IKsJackDescription2 methods ***/
  1852. #define IKsJackDescription2_GetJackCount(This,pcJacks) (This)->lpVtbl->GetJackCount(This,pcJacks)
  1853. #define IKsJackDescription2_GetJackDescription2(This,nJack,pDescription2) (This)->lpVtbl->GetJackDescription2(This,nJack,pDescription2)
  1854. #else
  1855. /*** IUnknown methods ***/
  1856. static FORCEINLINE HRESULT IKsJackDescription2_QueryInterface(IKsJackDescription2* This,REFIID riid,void **ppvObject) {
  1857. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1858. }
  1859. static FORCEINLINE ULONG IKsJackDescription2_AddRef(IKsJackDescription2* This) {
  1860. return This->lpVtbl->AddRef(This);
  1861. }
  1862. static FORCEINLINE ULONG IKsJackDescription2_Release(IKsJackDescription2* This) {
  1863. return This->lpVtbl->Release(This);
  1864. }
  1865. /*** IKsJackDescription2 methods ***/
  1866. static FORCEINLINE HRESULT IKsJackDescription2_GetJackCount(IKsJackDescription2* This,UINT *pcJacks) {
  1867. return This->lpVtbl->GetJackCount(This,pcJacks);
  1868. }
  1869. static FORCEINLINE HRESULT IKsJackDescription2_GetJackDescription2(IKsJackDescription2* This,UINT nJack,KSJACK_DESCRIPTION2 *pDescription2) {
  1870. return This->lpVtbl->GetJackDescription2(This,nJack,pDescription2);
  1871. }
  1872. #endif
  1873. #endif
  1874. #endif
  1875. #endif /* __IKsJackDescription2_INTERFACE_DEFINED__ */
  1876. /*****************************************************************************
  1877. * IKsJackSinkInformation interface
  1878. */
  1879. #ifndef __IKsJackSinkInformation_INTERFACE_DEFINED__
  1880. #define __IKsJackSinkInformation_INTERFACE_DEFINED__
  1881. DEFINE_GUID(IID_IKsJackSinkInformation, 0xd9bd72ed, 0x290f, 0x4581, 0x9f,0xf3, 0x61,0x02,0x7a,0x8f,0xe5,0x32);
  1882. #if defined(__cplusplus) && !defined(CINTERFACE)
  1883. MIDL_INTERFACE("d9bd72ed-290f-4581-9ff3-61027a8fe532")
  1884. IKsJackSinkInformation : public IUnknown
  1885. {
  1886. virtual HRESULT STDMETHODCALLTYPE GetJackSinkInformation(
  1887. KSJACK_SINK_INFORMATION *pJackSinkInformation) = 0;
  1888. };
  1889. #ifdef __CRT_UUID_DECL
  1890. __CRT_UUID_DECL(IKsJackSinkInformation, 0xd9bd72ed, 0x290f, 0x4581, 0x9f,0xf3, 0x61,0x02,0x7a,0x8f,0xe5,0x32)
  1891. #endif
  1892. #else
  1893. typedef struct IKsJackSinkInformationVtbl {
  1894. BEGIN_INTERFACE
  1895. /*** IUnknown methods ***/
  1896. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1897. IKsJackSinkInformation *This,
  1898. REFIID riid,
  1899. void **ppvObject);
  1900. ULONG (STDMETHODCALLTYPE *AddRef)(
  1901. IKsJackSinkInformation *This);
  1902. ULONG (STDMETHODCALLTYPE *Release)(
  1903. IKsJackSinkInformation *This);
  1904. /*** IKsJackSinkInformation methods ***/
  1905. HRESULT (STDMETHODCALLTYPE *GetJackSinkInformation)(
  1906. IKsJackSinkInformation *This,
  1907. KSJACK_SINK_INFORMATION *pJackSinkInformation);
  1908. END_INTERFACE
  1909. } IKsJackSinkInformationVtbl;
  1910. interface IKsJackSinkInformation {
  1911. CONST_VTBL IKsJackSinkInformationVtbl* lpVtbl;
  1912. };
  1913. #ifdef COBJMACROS
  1914. #ifndef WIDL_C_INLINE_WRAPPERS
  1915. /*** IUnknown methods ***/
  1916. #define IKsJackSinkInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1917. #define IKsJackSinkInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
  1918. #define IKsJackSinkInformation_Release(This) (This)->lpVtbl->Release(This)
  1919. /*** IKsJackSinkInformation methods ***/
  1920. #define IKsJackSinkInformation_GetJackSinkInformation(This,pJackSinkInformation) (This)->lpVtbl->GetJackSinkInformation(This,pJackSinkInformation)
  1921. #else
  1922. /*** IUnknown methods ***/
  1923. static FORCEINLINE HRESULT IKsJackSinkInformation_QueryInterface(IKsJackSinkInformation* This,REFIID riid,void **ppvObject) {
  1924. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1925. }
  1926. static FORCEINLINE ULONG IKsJackSinkInformation_AddRef(IKsJackSinkInformation* This) {
  1927. return This->lpVtbl->AddRef(This);
  1928. }
  1929. static FORCEINLINE ULONG IKsJackSinkInformation_Release(IKsJackSinkInformation* This) {
  1930. return This->lpVtbl->Release(This);
  1931. }
  1932. /*** IKsJackSinkInformation methods ***/
  1933. static FORCEINLINE HRESULT IKsJackSinkInformation_GetJackSinkInformation(IKsJackSinkInformation* This,KSJACK_SINK_INFORMATION *pJackSinkInformation) {
  1934. return This->lpVtbl->GetJackSinkInformation(This,pJackSinkInformation);
  1935. }
  1936. #endif
  1937. #endif
  1938. #endif
  1939. #endif /* __IKsJackSinkInformation_INTERFACE_DEFINED__ */
  1940. /*****************************************************************************
  1941. * IPartsList interface
  1942. */
  1943. #ifndef __IPartsList_INTERFACE_DEFINED__
  1944. #define __IPartsList_INTERFACE_DEFINED__
  1945. DEFINE_GUID(IID_IPartsList, 0x6daa848c, 0x5eb0, 0x45cc, 0xae,0xa5, 0x99,0x8a,0x2c,0xda,0x1f,0xfb);
  1946. #if defined(__cplusplus) && !defined(CINTERFACE)
  1947. MIDL_INTERFACE("6daa848c-5eb0-45cc-aea5-998a2cda1ffb")
  1948. IPartsList : public IUnknown
  1949. {
  1950. virtual HRESULT STDMETHODCALLTYPE GetCount(
  1951. UINT *pCount) = 0;
  1952. virtual HRESULT STDMETHODCALLTYPE GetPart(
  1953. UINT nIndex,
  1954. IPart **ppPart) = 0;
  1955. };
  1956. #ifdef __CRT_UUID_DECL
  1957. __CRT_UUID_DECL(IPartsList, 0x6daa848c, 0x5eb0, 0x45cc, 0xae,0xa5, 0x99,0x8a,0x2c,0xda,0x1f,0xfb)
  1958. #endif
  1959. #else
  1960. typedef struct IPartsListVtbl {
  1961. BEGIN_INTERFACE
  1962. /*** IUnknown methods ***/
  1963. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1964. IPartsList *This,
  1965. REFIID riid,
  1966. void **ppvObject);
  1967. ULONG (STDMETHODCALLTYPE *AddRef)(
  1968. IPartsList *This);
  1969. ULONG (STDMETHODCALLTYPE *Release)(
  1970. IPartsList *This);
  1971. /*** IPartsList methods ***/
  1972. HRESULT (STDMETHODCALLTYPE *GetCount)(
  1973. IPartsList *This,
  1974. UINT *pCount);
  1975. HRESULT (STDMETHODCALLTYPE *GetPart)(
  1976. IPartsList *This,
  1977. UINT nIndex,
  1978. IPart **ppPart);
  1979. END_INTERFACE
  1980. } IPartsListVtbl;
  1981. interface IPartsList {
  1982. CONST_VTBL IPartsListVtbl* lpVtbl;
  1983. };
  1984. #ifdef COBJMACROS
  1985. #ifndef WIDL_C_INLINE_WRAPPERS
  1986. /*** IUnknown methods ***/
  1987. #define IPartsList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1988. #define IPartsList_AddRef(This) (This)->lpVtbl->AddRef(This)
  1989. #define IPartsList_Release(This) (This)->lpVtbl->Release(This)
  1990. /*** IPartsList methods ***/
  1991. #define IPartsList_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
  1992. #define IPartsList_GetPart(This,nIndex,ppPart) (This)->lpVtbl->GetPart(This,nIndex,ppPart)
  1993. #else
  1994. /*** IUnknown methods ***/
  1995. static FORCEINLINE HRESULT IPartsList_QueryInterface(IPartsList* This,REFIID riid,void **ppvObject) {
  1996. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1997. }
  1998. static FORCEINLINE ULONG IPartsList_AddRef(IPartsList* This) {
  1999. return This->lpVtbl->AddRef(This);
  2000. }
  2001. static FORCEINLINE ULONG IPartsList_Release(IPartsList* This) {
  2002. return This->lpVtbl->Release(This);
  2003. }
  2004. /*** IPartsList methods ***/
  2005. static FORCEINLINE HRESULT IPartsList_GetCount(IPartsList* This,UINT *pCount) {
  2006. return This->lpVtbl->GetCount(This,pCount);
  2007. }
  2008. static FORCEINLINE HRESULT IPartsList_GetPart(IPartsList* This,UINT nIndex,IPart **ppPart) {
  2009. return This->lpVtbl->GetPart(This,nIndex,ppPart);
  2010. }
  2011. #endif
  2012. #endif
  2013. #endif
  2014. #endif /* __IPartsList_INTERFACE_DEFINED__ */
  2015. /*****************************************************************************
  2016. * IPart interface
  2017. */
  2018. #ifndef __IPart_INTERFACE_DEFINED__
  2019. #define __IPart_INTERFACE_DEFINED__
  2020. DEFINE_GUID(IID_IPart, 0xae2de0e4, 0x5bca, 0x4f2d, 0xaa,0x46, 0x5d,0x13,0xf8,0xfd,0xb3,0xa9);
  2021. #if defined(__cplusplus) && !defined(CINTERFACE)
  2022. MIDL_INTERFACE("ae2de0e4-5bca-4f2d-aa46-5d13f8fdb3a9")
  2023. IPart : public IUnknown
  2024. {
  2025. virtual HRESULT STDMETHODCALLTYPE GetName(
  2026. LPWSTR *ppwstrName) = 0;
  2027. virtual HRESULT STDMETHODCALLTYPE GetLocalId(
  2028. UINT *pnId) = 0;
  2029. virtual HRESULT STDMETHODCALLTYPE GetGlobalId(
  2030. LPWSTR *ppwstrGlobalId) = 0;
  2031. virtual HRESULT STDMETHODCALLTYPE GetPartType(
  2032. PartType *pPartType) = 0;
  2033. virtual HRESULT STDMETHODCALLTYPE GetSubType(
  2034. GUID *pSubType) = 0;
  2035. virtual HRESULT STDMETHODCALLTYPE GetControlInterfaceCount(
  2036. UINT *pCount) = 0;
  2037. virtual HRESULT STDMETHODCALLTYPE GetControlInterface(
  2038. UINT nIndex,
  2039. IControlInterface **ppInterfaceDesc) = 0;
  2040. virtual HRESULT STDMETHODCALLTYPE EnumPartsIncoming(
  2041. IPartsList **ppParts) = 0;
  2042. virtual HRESULT STDMETHODCALLTYPE EnumPartsOutgoing(
  2043. IPartsList **ppParts) = 0;
  2044. virtual HRESULT STDMETHODCALLTYPE GetTopologyObjects(
  2045. IDeviceTopology **ppTopology) = 0;
  2046. virtual HRESULT STDMETHODCALLTYPE Activate(
  2047. DWORD dwClsContext,
  2048. REFIID refiid,
  2049. void **ppvObject) = 0;
  2050. virtual HRESULT STDMETHODCALLTYPE RegisterControlChangeCallback(
  2051. REFGUID riid,
  2052. IControlChangeNotify *pNotify) = 0;
  2053. virtual HRESULT STDMETHODCALLTYPE UnregisterControlChangeCallback(
  2054. IControlChangeNotify *pNotify) = 0;
  2055. };
  2056. #ifdef __CRT_UUID_DECL
  2057. __CRT_UUID_DECL(IPart, 0xae2de0e4, 0x5bca, 0x4f2d, 0xaa,0x46, 0x5d,0x13,0xf8,0xfd,0xb3,0xa9)
  2058. #endif
  2059. #else
  2060. typedef struct IPartVtbl {
  2061. BEGIN_INTERFACE
  2062. /*** IUnknown methods ***/
  2063. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2064. IPart *This,
  2065. REFIID riid,
  2066. void **ppvObject);
  2067. ULONG (STDMETHODCALLTYPE *AddRef)(
  2068. IPart *This);
  2069. ULONG (STDMETHODCALLTYPE *Release)(
  2070. IPart *This);
  2071. /*** IPart methods ***/
  2072. HRESULT (STDMETHODCALLTYPE *GetName)(
  2073. IPart *This,
  2074. LPWSTR *ppwstrName);
  2075. HRESULT (STDMETHODCALLTYPE *GetLocalId)(
  2076. IPart *This,
  2077. UINT *pnId);
  2078. HRESULT (STDMETHODCALLTYPE *GetGlobalId)(
  2079. IPart *This,
  2080. LPWSTR *ppwstrGlobalId);
  2081. HRESULT (STDMETHODCALLTYPE *GetPartType)(
  2082. IPart *This,
  2083. PartType *pPartType);
  2084. HRESULT (STDMETHODCALLTYPE *GetSubType)(
  2085. IPart *This,
  2086. GUID *pSubType);
  2087. HRESULT (STDMETHODCALLTYPE *GetControlInterfaceCount)(
  2088. IPart *This,
  2089. UINT *pCount);
  2090. HRESULT (STDMETHODCALLTYPE *GetControlInterface)(
  2091. IPart *This,
  2092. UINT nIndex,
  2093. IControlInterface **ppInterfaceDesc);
  2094. HRESULT (STDMETHODCALLTYPE *EnumPartsIncoming)(
  2095. IPart *This,
  2096. IPartsList **ppParts);
  2097. HRESULT (STDMETHODCALLTYPE *EnumPartsOutgoing)(
  2098. IPart *This,
  2099. IPartsList **ppParts);
  2100. HRESULT (STDMETHODCALLTYPE *GetTopologyObjects)(
  2101. IPart *This,
  2102. IDeviceTopology **ppTopology);
  2103. HRESULT (STDMETHODCALLTYPE *Activate)(
  2104. IPart *This,
  2105. DWORD dwClsContext,
  2106. REFIID refiid,
  2107. void **ppvObject);
  2108. HRESULT (STDMETHODCALLTYPE *RegisterControlChangeCallback)(
  2109. IPart *This,
  2110. REFGUID riid,
  2111. IControlChangeNotify *pNotify);
  2112. HRESULT (STDMETHODCALLTYPE *UnregisterControlChangeCallback)(
  2113. IPart *This,
  2114. IControlChangeNotify *pNotify);
  2115. END_INTERFACE
  2116. } IPartVtbl;
  2117. interface IPart {
  2118. CONST_VTBL IPartVtbl* lpVtbl;
  2119. };
  2120. #ifdef COBJMACROS
  2121. #ifndef WIDL_C_INLINE_WRAPPERS
  2122. /*** IUnknown methods ***/
  2123. #define IPart_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2124. #define IPart_AddRef(This) (This)->lpVtbl->AddRef(This)
  2125. #define IPart_Release(This) (This)->lpVtbl->Release(This)
  2126. /*** IPart methods ***/
  2127. #define IPart_GetName(This,ppwstrName) (This)->lpVtbl->GetName(This,ppwstrName)
  2128. #define IPart_GetLocalId(This,pnId) (This)->lpVtbl->GetLocalId(This,pnId)
  2129. #define IPart_GetGlobalId(This,ppwstrGlobalId) (This)->lpVtbl->GetGlobalId(This,ppwstrGlobalId)
  2130. #define IPart_GetPartType(This,pPartType) (This)->lpVtbl->GetPartType(This,pPartType)
  2131. #define IPart_GetSubType(This,pSubType) (This)->lpVtbl->GetSubType(This,pSubType)
  2132. #define IPart_GetControlInterfaceCount(This,pCount) (This)->lpVtbl->GetControlInterfaceCount(This,pCount)
  2133. #define IPart_GetControlInterface(This,nIndex,ppInterfaceDesc) (This)->lpVtbl->GetControlInterface(This,nIndex,ppInterfaceDesc)
  2134. #define IPart_EnumPartsIncoming(This,ppParts) (This)->lpVtbl->EnumPartsIncoming(This,ppParts)
  2135. #define IPart_EnumPartsOutgoing(This,ppParts) (This)->lpVtbl->EnumPartsOutgoing(This,ppParts)
  2136. #define IPart_GetTopologyObjects(This,ppTopology) (This)->lpVtbl->GetTopologyObjects(This,ppTopology)
  2137. #define IPart_Activate(This,dwClsContext,refiid,ppvObject) (This)->lpVtbl->Activate(This,dwClsContext,refiid,ppvObject)
  2138. #define IPart_RegisterControlChangeCallback(This,riid,pNotify) (This)->lpVtbl->RegisterControlChangeCallback(This,riid,pNotify)
  2139. #define IPart_UnregisterControlChangeCallback(This,pNotify) (This)->lpVtbl->UnregisterControlChangeCallback(This,pNotify)
  2140. #else
  2141. /*** IUnknown methods ***/
  2142. static FORCEINLINE HRESULT IPart_QueryInterface(IPart* This,REFIID riid,void **ppvObject) {
  2143. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2144. }
  2145. static FORCEINLINE ULONG IPart_AddRef(IPart* This) {
  2146. return This->lpVtbl->AddRef(This);
  2147. }
  2148. static FORCEINLINE ULONG IPart_Release(IPart* This) {
  2149. return This->lpVtbl->Release(This);
  2150. }
  2151. /*** IPart methods ***/
  2152. static FORCEINLINE HRESULT IPart_GetName(IPart* This,LPWSTR *ppwstrName) {
  2153. return This->lpVtbl->GetName(This,ppwstrName);
  2154. }
  2155. static FORCEINLINE HRESULT IPart_GetLocalId(IPart* This,UINT *pnId) {
  2156. return This->lpVtbl->GetLocalId(This,pnId);
  2157. }
  2158. static FORCEINLINE HRESULT IPart_GetGlobalId(IPart* This,LPWSTR *ppwstrGlobalId) {
  2159. return This->lpVtbl->GetGlobalId(This,ppwstrGlobalId);
  2160. }
  2161. static FORCEINLINE HRESULT IPart_GetPartType(IPart* This,PartType *pPartType) {
  2162. return This->lpVtbl->GetPartType(This,pPartType);
  2163. }
  2164. static FORCEINLINE HRESULT IPart_GetSubType(IPart* This,GUID *pSubType) {
  2165. return This->lpVtbl->GetSubType(This,pSubType);
  2166. }
  2167. static FORCEINLINE HRESULT IPart_GetControlInterfaceCount(IPart* This,UINT *pCount) {
  2168. return This->lpVtbl->GetControlInterfaceCount(This,pCount);
  2169. }
  2170. static FORCEINLINE HRESULT IPart_GetControlInterface(IPart* This,UINT nIndex,IControlInterface **ppInterfaceDesc) {
  2171. return This->lpVtbl->GetControlInterface(This,nIndex,ppInterfaceDesc);
  2172. }
  2173. static FORCEINLINE HRESULT IPart_EnumPartsIncoming(IPart* This,IPartsList **ppParts) {
  2174. return This->lpVtbl->EnumPartsIncoming(This,ppParts);
  2175. }
  2176. static FORCEINLINE HRESULT IPart_EnumPartsOutgoing(IPart* This,IPartsList **ppParts) {
  2177. return This->lpVtbl->EnumPartsOutgoing(This,ppParts);
  2178. }
  2179. static FORCEINLINE HRESULT IPart_GetTopologyObjects(IPart* This,IDeviceTopology **ppTopology) {
  2180. return This->lpVtbl->GetTopologyObjects(This,ppTopology);
  2181. }
  2182. static FORCEINLINE HRESULT IPart_Activate(IPart* This,DWORD dwClsContext,REFIID refiid,void **ppvObject) {
  2183. return This->lpVtbl->Activate(This,dwClsContext,refiid,ppvObject);
  2184. }
  2185. static FORCEINLINE HRESULT IPart_RegisterControlChangeCallback(IPart* This,REFGUID riid,IControlChangeNotify *pNotify) {
  2186. return This->lpVtbl->RegisterControlChangeCallback(This,riid,pNotify);
  2187. }
  2188. static FORCEINLINE HRESULT IPart_UnregisterControlChangeCallback(IPart* This,IControlChangeNotify *pNotify) {
  2189. return This->lpVtbl->UnregisterControlChangeCallback(This,pNotify);
  2190. }
  2191. #endif
  2192. #endif
  2193. #endif
  2194. #endif /* __IPart_INTERFACE_DEFINED__ */
  2195. /*****************************************************************************
  2196. * IConnector interface
  2197. */
  2198. #ifndef __IConnector_INTERFACE_DEFINED__
  2199. #define __IConnector_INTERFACE_DEFINED__
  2200. DEFINE_GUID(IID_IConnector, 0x9c2c4058, 0x23f5, 0x41de, 0x87,0x7a, 0xdf,0x3a,0xf2,0x36,0xa0,0x9e);
  2201. #if defined(__cplusplus) && !defined(CINTERFACE)
  2202. MIDL_INTERFACE("9c2c4058-23f5-41de-877a-df3af236a09e")
  2203. IConnector : public IUnknown
  2204. {
  2205. virtual HRESULT STDMETHODCALLTYPE GetType(
  2206. ConnectorType *pType) = 0;
  2207. virtual HRESULT STDMETHODCALLTYPE GetDataFlow(
  2208. DataFlow *pFlow) = 0;
  2209. virtual HRESULT STDMETHODCALLTYPE ConnectTo(
  2210. IConnector *pConnectTo) = 0;
  2211. virtual HRESULT STDMETHODCALLTYPE Disconnect(
  2212. ) = 0;
  2213. virtual HRESULT STDMETHODCALLTYPE IsConnected(
  2214. WINBOOL *pbConnected) = 0;
  2215. virtual HRESULT STDMETHODCALLTYPE GetConnectedTo(
  2216. IConnector **ppConTo) = 0;
  2217. virtual HRESULT STDMETHODCALLTYPE GetConnectorIdConnectedTo(
  2218. LPWSTR *ppwstrConnectorId) = 0;
  2219. virtual HRESULT STDMETHODCALLTYPE GetDeviceIdConnectedTo(
  2220. LPWSTR *ppwstrDeviceId) = 0;
  2221. };
  2222. #ifdef __CRT_UUID_DECL
  2223. __CRT_UUID_DECL(IConnector, 0x9c2c4058, 0x23f5, 0x41de, 0x87,0x7a, 0xdf,0x3a,0xf2,0x36,0xa0,0x9e)
  2224. #endif
  2225. #else
  2226. typedef struct IConnectorVtbl {
  2227. BEGIN_INTERFACE
  2228. /*** IUnknown methods ***/
  2229. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2230. IConnector *This,
  2231. REFIID riid,
  2232. void **ppvObject);
  2233. ULONG (STDMETHODCALLTYPE *AddRef)(
  2234. IConnector *This);
  2235. ULONG (STDMETHODCALLTYPE *Release)(
  2236. IConnector *This);
  2237. /*** IConnector methods ***/
  2238. HRESULT (STDMETHODCALLTYPE *GetType)(
  2239. IConnector *This,
  2240. ConnectorType *pType);
  2241. HRESULT (STDMETHODCALLTYPE *GetDataFlow)(
  2242. IConnector *This,
  2243. DataFlow *pFlow);
  2244. HRESULT (STDMETHODCALLTYPE *ConnectTo)(
  2245. IConnector *This,
  2246. IConnector *pConnectTo);
  2247. HRESULT (STDMETHODCALLTYPE *Disconnect)(
  2248. IConnector *This);
  2249. HRESULT (STDMETHODCALLTYPE *IsConnected)(
  2250. IConnector *This,
  2251. WINBOOL *pbConnected);
  2252. HRESULT (STDMETHODCALLTYPE *GetConnectedTo)(
  2253. IConnector *This,
  2254. IConnector **ppConTo);
  2255. HRESULT (STDMETHODCALLTYPE *GetConnectorIdConnectedTo)(
  2256. IConnector *This,
  2257. LPWSTR *ppwstrConnectorId);
  2258. HRESULT (STDMETHODCALLTYPE *GetDeviceIdConnectedTo)(
  2259. IConnector *This,
  2260. LPWSTR *ppwstrDeviceId);
  2261. END_INTERFACE
  2262. } IConnectorVtbl;
  2263. interface IConnector {
  2264. CONST_VTBL IConnectorVtbl* lpVtbl;
  2265. };
  2266. #ifdef COBJMACROS
  2267. #ifndef WIDL_C_INLINE_WRAPPERS
  2268. /*** IUnknown methods ***/
  2269. #define IConnector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2270. #define IConnector_AddRef(This) (This)->lpVtbl->AddRef(This)
  2271. #define IConnector_Release(This) (This)->lpVtbl->Release(This)
  2272. /*** IConnector methods ***/
  2273. #define IConnector_GetType(This,pType) (This)->lpVtbl->GetType(This,pType)
  2274. #define IConnector_GetDataFlow(This,pFlow) (This)->lpVtbl->GetDataFlow(This,pFlow)
  2275. #define IConnector_ConnectTo(This,pConnectTo) (This)->lpVtbl->ConnectTo(This,pConnectTo)
  2276. #define IConnector_Disconnect(This) (This)->lpVtbl->Disconnect(This)
  2277. #define IConnector_IsConnected(This,pbConnected) (This)->lpVtbl->IsConnected(This,pbConnected)
  2278. #define IConnector_GetConnectedTo(This,ppConTo) (This)->lpVtbl->GetConnectedTo(This,ppConTo)
  2279. #define IConnector_GetConnectorIdConnectedTo(This,ppwstrConnectorId) (This)->lpVtbl->GetConnectorIdConnectedTo(This,ppwstrConnectorId)
  2280. #define IConnector_GetDeviceIdConnectedTo(This,ppwstrDeviceId) (This)->lpVtbl->GetDeviceIdConnectedTo(This,ppwstrDeviceId)
  2281. #else
  2282. /*** IUnknown methods ***/
  2283. static FORCEINLINE HRESULT IConnector_QueryInterface(IConnector* This,REFIID riid,void **ppvObject) {
  2284. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2285. }
  2286. static FORCEINLINE ULONG IConnector_AddRef(IConnector* This) {
  2287. return This->lpVtbl->AddRef(This);
  2288. }
  2289. static FORCEINLINE ULONG IConnector_Release(IConnector* This) {
  2290. return This->lpVtbl->Release(This);
  2291. }
  2292. /*** IConnector methods ***/
  2293. static FORCEINLINE HRESULT IConnector_GetType(IConnector* This,ConnectorType *pType) {
  2294. return This->lpVtbl->GetType(This,pType);
  2295. }
  2296. static FORCEINLINE HRESULT IConnector_GetDataFlow(IConnector* This,DataFlow *pFlow) {
  2297. return This->lpVtbl->GetDataFlow(This,pFlow);
  2298. }
  2299. static FORCEINLINE HRESULT IConnector_ConnectTo(IConnector* This,IConnector *pConnectTo) {
  2300. return This->lpVtbl->ConnectTo(This,pConnectTo);
  2301. }
  2302. static FORCEINLINE HRESULT IConnector_Disconnect(IConnector* This) {
  2303. return This->lpVtbl->Disconnect(This);
  2304. }
  2305. static FORCEINLINE HRESULT IConnector_IsConnected(IConnector* This,WINBOOL *pbConnected) {
  2306. return This->lpVtbl->IsConnected(This,pbConnected);
  2307. }
  2308. static FORCEINLINE HRESULT IConnector_GetConnectedTo(IConnector* This,IConnector **ppConTo) {
  2309. return This->lpVtbl->GetConnectedTo(This,ppConTo);
  2310. }
  2311. static FORCEINLINE HRESULT IConnector_GetConnectorIdConnectedTo(IConnector* This,LPWSTR *ppwstrConnectorId) {
  2312. return This->lpVtbl->GetConnectorIdConnectedTo(This,ppwstrConnectorId);
  2313. }
  2314. static FORCEINLINE HRESULT IConnector_GetDeviceIdConnectedTo(IConnector* This,LPWSTR *ppwstrDeviceId) {
  2315. return This->lpVtbl->GetDeviceIdConnectedTo(This,ppwstrDeviceId);
  2316. }
  2317. #endif
  2318. #endif
  2319. #endif
  2320. #endif /* __IConnector_INTERFACE_DEFINED__ */
  2321. /*****************************************************************************
  2322. * ISubUnit interface
  2323. */
  2324. #ifndef __ISubUnit_INTERFACE_DEFINED__
  2325. #define __ISubUnit_INTERFACE_DEFINED__
  2326. DEFINE_GUID(IID_ISubUnit, 0x82149a85, 0xdba6, 0x4487, 0x86,0xbb, 0xea,0x8f,0x7f,0xef,0xcc,0x71);
  2327. #if defined(__cplusplus) && !defined(CINTERFACE)
  2328. MIDL_INTERFACE("82149a85-dba6-4487-86bb-ea8f7fefcc71")
  2329. ISubUnit : public IUnknown
  2330. {
  2331. };
  2332. #ifdef __CRT_UUID_DECL
  2333. __CRT_UUID_DECL(ISubUnit, 0x82149a85, 0xdba6, 0x4487, 0x86,0xbb, 0xea,0x8f,0x7f,0xef,0xcc,0x71)
  2334. #endif
  2335. #else
  2336. typedef struct ISubUnitVtbl {
  2337. BEGIN_INTERFACE
  2338. /*** IUnknown methods ***/
  2339. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2340. ISubUnit *This,
  2341. REFIID riid,
  2342. void **ppvObject);
  2343. ULONG (STDMETHODCALLTYPE *AddRef)(
  2344. ISubUnit *This);
  2345. ULONG (STDMETHODCALLTYPE *Release)(
  2346. ISubUnit *This);
  2347. END_INTERFACE
  2348. } ISubUnitVtbl;
  2349. interface ISubUnit {
  2350. CONST_VTBL ISubUnitVtbl* lpVtbl;
  2351. };
  2352. #ifdef COBJMACROS
  2353. #ifndef WIDL_C_INLINE_WRAPPERS
  2354. /*** IUnknown methods ***/
  2355. #define ISubUnit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2356. #define ISubUnit_AddRef(This) (This)->lpVtbl->AddRef(This)
  2357. #define ISubUnit_Release(This) (This)->lpVtbl->Release(This)
  2358. #else
  2359. /*** IUnknown methods ***/
  2360. static FORCEINLINE HRESULT ISubUnit_QueryInterface(ISubUnit* This,REFIID riid,void **ppvObject) {
  2361. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2362. }
  2363. static FORCEINLINE ULONG ISubUnit_AddRef(ISubUnit* This) {
  2364. return This->lpVtbl->AddRef(This);
  2365. }
  2366. static FORCEINLINE ULONG ISubUnit_Release(ISubUnit* This) {
  2367. return This->lpVtbl->Release(This);
  2368. }
  2369. #endif
  2370. #endif
  2371. #endif
  2372. #endif /* __ISubUnit_INTERFACE_DEFINED__ */
  2373. /*****************************************************************************
  2374. * IControlInterface interface
  2375. */
  2376. #ifndef __IControlInterface_INTERFACE_DEFINED__
  2377. #define __IControlInterface_INTERFACE_DEFINED__
  2378. DEFINE_GUID(IID_IControlInterface, 0x45d37c3f, 0x5140, 0x444a, 0xae,0x24, 0x40,0x07,0x89,0xf3,0xcb,0xf3);
  2379. #if defined(__cplusplus) && !defined(CINTERFACE)
  2380. MIDL_INTERFACE("45d37c3f-5140-444a-ae24-400789f3cbf3")
  2381. IControlInterface : public IUnknown
  2382. {
  2383. virtual HRESULT STDMETHODCALLTYPE GetName(
  2384. LPWSTR *ppwstrName) = 0;
  2385. virtual HRESULT STDMETHODCALLTYPE GetIID(
  2386. GUID *pIID) = 0;
  2387. };
  2388. #ifdef __CRT_UUID_DECL
  2389. __CRT_UUID_DECL(IControlInterface, 0x45d37c3f, 0x5140, 0x444a, 0xae,0x24, 0x40,0x07,0x89,0xf3,0xcb,0xf3)
  2390. #endif
  2391. #else
  2392. typedef struct IControlInterfaceVtbl {
  2393. BEGIN_INTERFACE
  2394. /*** IUnknown methods ***/
  2395. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2396. IControlInterface *This,
  2397. REFIID riid,
  2398. void **ppvObject);
  2399. ULONG (STDMETHODCALLTYPE *AddRef)(
  2400. IControlInterface *This);
  2401. ULONG (STDMETHODCALLTYPE *Release)(
  2402. IControlInterface *This);
  2403. /*** IControlInterface methods ***/
  2404. HRESULT (STDMETHODCALLTYPE *GetName)(
  2405. IControlInterface *This,
  2406. LPWSTR *ppwstrName);
  2407. HRESULT (STDMETHODCALLTYPE *GetIID)(
  2408. IControlInterface *This,
  2409. GUID *pIID);
  2410. END_INTERFACE
  2411. } IControlInterfaceVtbl;
  2412. interface IControlInterface {
  2413. CONST_VTBL IControlInterfaceVtbl* lpVtbl;
  2414. };
  2415. #ifdef COBJMACROS
  2416. #ifndef WIDL_C_INLINE_WRAPPERS
  2417. /*** IUnknown methods ***/
  2418. #define IControlInterface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2419. #define IControlInterface_AddRef(This) (This)->lpVtbl->AddRef(This)
  2420. #define IControlInterface_Release(This) (This)->lpVtbl->Release(This)
  2421. /*** IControlInterface methods ***/
  2422. #define IControlInterface_GetName(This,ppwstrName) (This)->lpVtbl->GetName(This,ppwstrName)
  2423. #define IControlInterface_GetIID(This,pIID) (This)->lpVtbl->GetIID(This,pIID)
  2424. #else
  2425. /*** IUnknown methods ***/
  2426. static FORCEINLINE HRESULT IControlInterface_QueryInterface(IControlInterface* This,REFIID riid,void **ppvObject) {
  2427. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2428. }
  2429. static FORCEINLINE ULONG IControlInterface_AddRef(IControlInterface* This) {
  2430. return This->lpVtbl->AddRef(This);
  2431. }
  2432. static FORCEINLINE ULONG IControlInterface_Release(IControlInterface* This) {
  2433. return This->lpVtbl->Release(This);
  2434. }
  2435. /*** IControlInterface methods ***/
  2436. static FORCEINLINE HRESULT IControlInterface_GetName(IControlInterface* This,LPWSTR *ppwstrName) {
  2437. return This->lpVtbl->GetName(This,ppwstrName);
  2438. }
  2439. static FORCEINLINE HRESULT IControlInterface_GetIID(IControlInterface* This,GUID *pIID) {
  2440. return This->lpVtbl->GetIID(This,pIID);
  2441. }
  2442. #endif
  2443. #endif
  2444. #endif
  2445. #endif /* __IControlInterface_INTERFACE_DEFINED__ */
  2446. /*****************************************************************************
  2447. * IControlChangeNotify interface
  2448. */
  2449. #ifndef __IControlChangeNotify_INTERFACE_DEFINED__
  2450. #define __IControlChangeNotify_INTERFACE_DEFINED__
  2451. DEFINE_GUID(IID_IControlChangeNotify, 0xa09513ed, 0xc709, 0x4d21, 0xbd,0x7b, 0x5f,0x34,0xc4,0x7f,0x39,0x47);
  2452. #if defined(__cplusplus) && !defined(CINTERFACE)
  2453. MIDL_INTERFACE("a09513ed-c709-4d21-bd7b-5f34c47f3947")
  2454. IControlChangeNotify : public IUnknown
  2455. {
  2456. virtual HRESULT STDMETHODCALLTYPE OnNotify(
  2457. DWORD dwSenderProcessId,
  2458. LPCGUID ppguidEventContext) = 0;
  2459. };
  2460. #ifdef __CRT_UUID_DECL
  2461. __CRT_UUID_DECL(IControlChangeNotify, 0xa09513ed, 0xc709, 0x4d21, 0xbd,0x7b, 0x5f,0x34,0xc4,0x7f,0x39,0x47)
  2462. #endif
  2463. #else
  2464. typedef struct IControlChangeNotifyVtbl {
  2465. BEGIN_INTERFACE
  2466. /*** IUnknown methods ***/
  2467. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2468. IControlChangeNotify *This,
  2469. REFIID riid,
  2470. void **ppvObject);
  2471. ULONG (STDMETHODCALLTYPE *AddRef)(
  2472. IControlChangeNotify *This);
  2473. ULONG (STDMETHODCALLTYPE *Release)(
  2474. IControlChangeNotify *This);
  2475. /*** IControlChangeNotify methods ***/
  2476. HRESULT (STDMETHODCALLTYPE *OnNotify)(
  2477. IControlChangeNotify *This,
  2478. DWORD dwSenderProcessId,
  2479. LPCGUID ppguidEventContext);
  2480. END_INTERFACE
  2481. } IControlChangeNotifyVtbl;
  2482. interface IControlChangeNotify {
  2483. CONST_VTBL IControlChangeNotifyVtbl* lpVtbl;
  2484. };
  2485. #ifdef COBJMACROS
  2486. #ifndef WIDL_C_INLINE_WRAPPERS
  2487. /*** IUnknown methods ***/
  2488. #define IControlChangeNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2489. #define IControlChangeNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
  2490. #define IControlChangeNotify_Release(This) (This)->lpVtbl->Release(This)
  2491. /*** IControlChangeNotify methods ***/
  2492. #define IControlChangeNotify_OnNotify(This,dwSenderProcessId,ppguidEventContext) (This)->lpVtbl->OnNotify(This,dwSenderProcessId,ppguidEventContext)
  2493. #else
  2494. /*** IUnknown methods ***/
  2495. static FORCEINLINE HRESULT IControlChangeNotify_QueryInterface(IControlChangeNotify* This,REFIID riid,void **ppvObject) {
  2496. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2497. }
  2498. static FORCEINLINE ULONG IControlChangeNotify_AddRef(IControlChangeNotify* This) {
  2499. return This->lpVtbl->AddRef(This);
  2500. }
  2501. static FORCEINLINE ULONG IControlChangeNotify_Release(IControlChangeNotify* This) {
  2502. return This->lpVtbl->Release(This);
  2503. }
  2504. /*** IControlChangeNotify methods ***/
  2505. static FORCEINLINE HRESULT IControlChangeNotify_OnNotify(IControlChangeNotify* This,DWORD dwSenderProcessId,LPCGUID ppguidEventContext) {
  2506. return This->lpVtbl->OnNotify(This,dwSenderProcessId,ppguidEventContext);
  2507. }
  2508. #endif
  2509. #endif
  2510. #endif
  2511. #endif /* __IControlChangeNotify_INTERFACE_DEFINED__ */
  2512. /*****************************************************************************
  2513. * IDeviceTopology interface
  2514. */
  2515. #ifndef __IDeviceTopology_INTERFACE_DEFINED__
  2516. #define __IDeviceTopology_INTERFACE_DEFINED__
  2517. DEFINE_GUID(IID_IDeviceTopology, 0x2a07407e, 0x6497, 0x4a18, 0x97,0x87, 0x32,0xf7,0x9b,0xd0,0xd9,0x8f);
  2518. #if defined(__cplusplus) && !defined(CINTERFACE)
  2519. MIDL_INTERFACE("2a07407e-6497-4a18-9787-32f79bd0d98f")
  2520. IDeviceTopology : public IUnknown
  2521. {
  2522. virtual HRESULT STDMETHODCALLTYPE GetConnectorCount(
  2523. UINT *pCount) = 0;
  2524. virtual HRESULT STDMETHODCALLTYPE GetConnector(
  2525. UINT nIndex,
  2526. IConnector **ppConnector) = 0;
  2527. virtual HRESULT STDMETHODCALLTYPE GetSubunitCount(
  2528. UINT *pCount) = 0;
  2529. virtual HRESULT STDMETHODCALLTYPE GetSubunit(
  2530. UINT nIndex,
  2531. ISubUnit **ppConnector) = 0;
  2532. virtual HRESULT STDMETHODCALLTYPE GetPartById(
  2533. UINT nId,
  2534. IPart **ppPart) = 0;
  2535. virtual HRESULT STDMETHODCALLTYPE GetDeviceId(
  2536. LPWSTR *ppwstrDeviceId) = 0;
  2537. virtual HRESULT STDMETHODCALLTYPE GetSignalPath(
  2538. IPart *pIPartFrom,
  2539. IPart *pIPartTo,
  2540. WINBOOL bRejectMixedPaths,
  2541. IPartsList **ppParts) = 0;
  2542. };
  2543. #ifdef __CRT_UUID_DECL
  2544. __CRT_UUID_DECL(IDeviceTopology, 0x2a07407e, 0x6497, 0x4a18, 0x97,0x87, 0x32,0xf7,0x9b,0xd0,0xd9,0x8f)
  2545. #endif
  2546. #else
  2547. typedef struct IDeviceTopologyVtbl {
  2548. BEGIN_INTERFACE
  2549. /*** IUnknown methods ***/
  2550. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2551. IDeviceTopology *This,
  2552. REFIID riid,
  2553. void **ppvObject);
  2554. ULONG (STDMETHODCALLTYPE *AddRef)(
  2555. IDeviceTopology *This);
  2556. ULONG (STDMETHODCALLTYPE *Release)(
  2557. IDeviceTopology *This);
  2558. /*** IDeviceTopology methods ***/
  2559. HRESULT (STDMETHODCALLTYPE *GetConnectorCount)(
  2560. IDeviceTopology *This,
  2561. UINT *pCount);
  2562. HRESULT (STDMETHODCALLTYPE *GetConnector)(
  2563. IDeviceTopology *This,
  2564. UINT nIndex,
  2565. IConnector **ppConnector);
  2566. HRESULT (STDMETHODCALLTYPE *GetSubunitCount)(
  2567. IDeviceTopology *This,
  2568. UINT *pCount);
  2569. HRESULT (STDMETHODCALLTYPE *GetSubunit)(
  2570. IDeviceTopology *This,
  2571. UINT nIndex,
  2572. ISubUnit **ppConnector);
  2573. HRESULT (STDMETHODCALLTYPE *GetPartById)(
  2574. IDeviceTopology *This,
  2575. UINT nId,
  2576. IPart **ppPart);
  2577. HRESULT (STDMETHODCALLTYPE *GetDeviceId)(
  2578. IDeviceTopology *This,
  2579. LPWSTR *ppwstrDeviceId);
  2580. HRESULT (STDMETHODCALLTYPE *GetSignalPath)(
  2581. IDeviceTopology *This,
  2582. IPart *pIPartFrom,
  2583. IPart *pIPartTo,
  2584. WINBOOL bRejectMixedPaths,
  2585. IPartsList **ppParts);
  2586. END_INTERFACE
  2587. } IDeviceTopologyVtbl;
  2588. interface IDeviceTopology {
  2589. CONST_VTBL IDeviceTopologyVtbl* lpVtbl;
  2590. };
  2591. #ifdef COBJMACROS
  2592. #ifndef WIDL_C_INLINE_WRAPPERS
  2593. /*** IUnknown methods ***/
  2594. #define IDeviceTopology_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2595. #define IDeviceTopology_AddRef(This) (This)->lpVtbl->AddRef(This)
  2596. #define IDeviceTopology_Release(This) (This)->lpVtbl->Release(This)
  2597. /*** IDeviceTopology methods ***/
  2598. #define IDeviceTopology_GetConnectorCount(This,pCount) (This)->lpVtbl->GetConnectorCount(This,pCount)
  2599. #define IDeviceTopology_GetConnector(This,nIndex,ppConnector) (This)->lpVtbl->GetConnector(This,nIndex,ppConnector)
  2600. #define IDeviceTopology_GetSubunitCount(This,pCount) (This)->lpVtbl->GetSubunitCount(This,pCount)
  2601. #define IDeviceTopology_GetSubunit(This,nIndex,ppConnector) (This)->lpVtbl->GetSubunit(This,nIndex,ppConnector)
  2602. #define IDeviceTopology_GetPartById(This,nId,ppPart) (This)->lpVtbl->GetPartById(This,nId,ppPart)
  2603. #define IDeviceTopology_GetDeviceId(This,ppwstrDeviceId) (This)->lpVtbl->GetDeviceId(This,ppwstrDeviceId)
  2604. #define IDeviceTopology_GetSignalPath(This,pIPartFrom,pIPartTo,bRejectMixedPaths,ppParts) (This)->lpVtbl->GetSignalPath(This,pIPartFrom,pIPartTo,bRejectMixedPaths,ppParts)
  2605. #else
  2606. /*** IUnknown methods ***/
  2607. static FORCEINLINE HRESULT IDeviceTopology_QueryInterface(IDeviceTopology* This,REFIID riid,void **ppvObject) {
  2608. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2609. }
  2610. static FORCEINLINE ULONG IDeviceTopology_AddRef(IDeviceTopology* This) {
  2611. return This->lpVtbl->AddRef(This);
  2612. }
  2613. static FORCEINLINE ULONG IDeviceTopology_Release(IDeviceTopology* This) {
  2614. return This->lpVtbl->Release(This);
  2615. }
  2616. /*** IDeviceTopology methods ***/
  2617. static FORCEINLINE HRESULT IDeviceTopology_GetConnectorCount(IDeviceTopology* This,UINT *pCount) {
  2618. return This->lpVtbl->GetConnectorCount(This,pCount);
  2619. }
  2620. static FORCEINLINE HRESULT IDeviceTopology_GetConnector(IDeviceTopology* This,UINT nIndex,IConnector **ppConnector) {
  2621. return This->lpVtbl->GetConnector(This,nIndex,ppConnector);
  2622. }
  2623. static FORCEINLINE HRESULT IDeviceTopology_GetSubunitCount(IDeviceTopology* This,UINT *pCount) {
  2624. return This->lpVtbl->GetSubunitCount(This,pCount);
  2625. }
  2626. static FORCEINLINE HRESULT IDeviceTopology_GetSubunit(IDeviceTopology* This,UINT nIndex,ISubUnit **ppConnector) {
  2627. return This->lpVtbl->GetSubunit(This,nIndex,ppConnector);
  2628. }
  2629. static FORCEINLINE HRESULT IDeviceTopology_GetPartById(IDeviceTopology* This,UINT nId,IPart **ppPart) {
  2630. return This->lpVtbl->GetPartById(This,nId,ppPart);
  2631. }
  2632. static FORCEINLINE HRESULT IDeviceTopology_GetDeviceId(IDeviceTopology* This,LPWSTR *ppwstrDeviceId) {
  2633. return This->lpVtbl->GetDeviceId(This,ppwstrDeviceId);
  2634. }
  2635. static FORCEINLINE HRESULT IDeviceTopology_GetSignalPath(IDeviceTopology* This,IPart *pIPartFrom,IPart *pIPartTo,WINBOOL bRejectMixedPaths,IPartsList **ppParts) {
  2636. return This->lpVtbl->GetSignalPath(This,pIPartFrom,pIPartTo,bRejectMixedPaths,ppParts);
  2637. }
  2638. #endif
  2639. #endif
  2640. #endif
  2641. #endif /* __IDeviceTopology_INTERFACE_DEFINED__ */
  2642. #ifndef __DevTopologyLib_LIBRARY_DEFINED__
  2643. #define __DevTopologyLib_LIBRARY_DEFINED__
  2644. DEFINE_GUID(LIBID_DevTopologyLib, 0x51b9a01d, 0x8181, 0x4363, 0xb5,0x9c, 0xe6,0x78,0xf4,0x76,0xdd,0x0e);
  2645. /*****************************************************************************
  2646. * DeviceTopology coclass
  2647. */
  2648. DEFINE_GUID(CLSID_DeviceTopology, 0x1df639d0, 0x5ec1, 0x47aa, 0x93,0x79, 0x82,0x8d,0xc1,0xaa,0x8c,0x59);
  2649. #ifdef __cplusplus
  2650. class DECLSPEC_UUID("1df639d0-5ec1-47aa-9379-828dc1aa8c59") DeviceTopology;
  2651. #ifdef __CRT_UUID_DECL
  2652. __CRT_UUID_DECL(DeviceTopology, 0x1df639d0, 0x5ec1, 0x47aa, 0x93,0x79, 0x82,0x8d,0xc1,0xaa,0x8c,0x59)
  2653. #endif
  2654. #endif
  2655. #endif /* __DevTopologyLib_LIBRARY_DEFINED__ */
  2656. /* Begin additional prototypes for all interfaces */
  2657. /* End additional prototypes */
  2658. #ifdef __cplusplus
  2659. }
  2660. #endif
  2661. #endif /* __devicetopology_h__ */