vidcap.idl 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. cpp_quote("#include <winapifamily.h>")
  7. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  8. import "unknwn.idl";
  9. import "strmif.idl";
  10. cpp_quote("#include \"ks.h\"")
  11. cpp_quote("#ifndef _KS_")
  12. typedef struct {
  13. ULONG FromNode;
  14. ULONG FromNodePin;
  15. ULONG ToNode;
  16. ULONG ToNodePin;
  17. } KSTOPOLOGY_CONNECTION, *PKSTOPOLOGY_CONNECTION;
  18. cpp_quote("#endif")
  19. [
  20. object,
  21. local,
  22. uuid(720D4AC0-7533-11D0-A5D6-28DB04C10000),
  23. pointer_default(unique)
  24. ]
  25. interface IKsTopologyInfo : IUnknown
  26. {
  27. HRESULT get_NumCategories([out] DWORD *pdwNumCategories);
  28. HRESULT get_Category([in] DWORD dwIndex, [out] GUID *pCategory);
  29. HRESULT get_NumConnections([out] DWORD *pdwNumConnections);
  30. HRESULT get_ConnectionInfo([in] DWORD dwIndex, [out] KSTOPOLOGY_CONNECTION *pConnectionInfo);
  31. HRESULT get_NodeName([in] DWORD dwNodeId, [out] WCHAR *pwchNodeName, [in] DWORD dwBufSize, [out] DWORD *pdwNameLen);
  32. HRESULT get_NumNodes([out] DWORD *pdwNumNodes);
  33. HRESULT get_NodeType([in] DWORD dwNodeId, [out] GUID *pNodeType);
  34. HRESULT CreateNodeInstance([in] DWORD dwNodeId, [in] REFIID iid, [out] void **ppvObject);
  35. }
  36. [
  37. object,
  38. local,
  39. uuid(1ABDAECA-68B6-4F83-9371-B413907C7B9F),
  40. pointer_default(unique)
  41. ]
  42. interface ISelector : IUnknown
  43. {
  44. HRESULT get_NumSources([out] DWORD *pdwNumSources);
  45. HRESULT get_SourceNodeId([out] DWORD *pdwPinId);
  46. HRESULT put_SourceNodeId([in] DWORD dwPinId);
  47. }
  48. [
  49. object,
  50. local,
  51. uuid(2BA1785D-4D1B-44EF-85E8-C7F1D3F20184),
  52. pointer_default(unique)
  53. ]
  54. interface ICameraControl : IUnknown
  55. {
  56. HRESULT get_Exposure(
  57. [out] long *pValue,
  58. [out] long *pFlags);
  59. HRESULT put_Exposure(
  60. [in] long Value,
  61. [in] long Flags);
  62. HRESULT getRange_Exposure(
  63. [out] long *pMin,
  64. [out] long *pMax,
  65. [out] long *pSteppingDelta,
  66. [out] long* pDefault,
  67. [out] long* pCapsFlag);
  68. HRESULT get_Focus(
  69. [out] long *pValue,
  70. [out] long *pFlags);
  71. HRESULT put_Focus(
  72. [in] long Value,
  73. [in] long Flags);
  74. HRESULT getRange_Focus(
  75. [out] long *pMin,
  76. [out] long *pMax,
  77. [out] long *pSteppingDelta,
  78. [out] long* pDefault,
  79. [out] long* pCapsFlag);
  80. HRESULT get_Iris(
  81. [out] long *pValue,
  82. [out] long *pFlags);
  83. HRESULT put_Iris(
  84. [in] long Value,
  85. [in] long Flags);
  86. HRESULT getRange_Iris(
  87. [out] long *pMin,
  88. [out] long *pMax,
  89. [out] long *pSteppingDelta,
  90. [out] long* pDefault,
  91. [out] long* pCapsFlag);
  92. HRESULT get_Zoom(
  93. [out] long *pValue,
  94. [out] long *pFlags);
  95. HRESULT put_Zoom(
  96. [in] long Value,
  97. [in] long Flags);
  98. HRESULT getRange_Zoom(
  99. [out] long *pMin,
  100. [out] long *pMax,
  101. [out] long *pSteppingDelta,
  102. [out] long* pDefault,
  103. [out] long* pCapsFlag);
  104. HRESULT get_FocalLengths(
  105. [out] long *plOcularFocalLength,
  106. [out] long *plObjectiveFocalLengthMin,
  107. [out] long *plObjectiveFocalLengthMax);
  108. HRESULT get_Pan(
  109. [out] long *pValue,
  110. [out] long *pFlags);
  111. HRESULT put_Pan(
  112. [in] long Value,
  113. [in] long Flags);
  114. HRESULT getRange_Pan(
  115. [out] long *pMin,
  116. [out] long *pMax,
  117. [out] long *pSteppingDelta,
  118. [out] long* pDefault,
  119. [out] long* pCapsFlag);
  120. HRESULT get_Tilt(
  121. [out] long *pValue,
  122. [out] long *pFlags);
  123. HRESULT put_Tilt(
  124. [in] long Value,
  125. [in] long Flags);
  126. HRESULT getRange_Tilt(
  127. [out] long *pMin,
  128. [out] long *pMax,
  129. [out] long *pSteppingDelta,
  130. [out] long* pDefault,
  131. [out] long* pCapsFlag);
  132. HRESULT get_PanTilt(
  133. [out] long *pPanValue,
  134. [out] long *pTiltValue,
  135. [out] long *pFlags);
  136. HRESULT put_PanTilt(
  137. [in] long PanValue,
  138. [in] long TiltValue,
  139. [in] long Flags);
  140. HRESULT get_Roll(
  141. [out] long *pValue,
  142. [out] long *pFlags);
  143. HRESULT put_Roll(
  144. [in] long Value,
  145. [in] long Flags);
  146. HRESULT getRange_Roll(
  147. [out] long *pMin,
  148. [out] long *pMax,
  149. [out] long *pSteppingDelta,
  150. [out] long* pDefault,
  151. [out] long* pCapsFlag);
  152. HRESULT get_ExposureRelative(
  153. [out] long *pValue,
  154. [out] long *pFlags);
  155. HRESULT put_ExposureRelative(
  156. [in] long Value,
  157. [in] long Flags);
  158. HRESULT getRange_ExposureRelative(
  159. [out] long *pMin,
  160. [out] long *pMax,
  161. [out] long *pSteppingDelta,
  162. [out] long* pDefault,
  163. [out] long* pCapsFlag);
  164. HRESULT get_FocusRelative(
  165. [out] long *pValue,
  166. [out] long *pFlags);
  167. HRESULT put_FocusRelative(
  168. [in] long Value,
  169. [in] long Flags);
  170. HRESULT getRange_FocusRelative(
  171. [out] long *pMin,
  172. [out] long *pMax,
  173. [out] long *pSteppingDelta,
  174. [out] long* pDefault,
  175. [out] long* pCapsFlag);
  176. HRESULT get_IrisRelative(
  177. [out] long *pValue,
  178. [out] long *pFlags);
  179. HRESULT put_IrisRelative(
  180. [in] long Value,
  181. [in] long Flags);
  182. HRESULT getRange_IrisRelative(
  183. [out] long *pMin,
  184. [out] long *pMax,
  185. [out] long *pSteppingDelta,
  186. [out] long* pDefault,
  187. [out] long* pCapsFlag);
  188. HRESULT get_ZoomRelative(
  189. [out] long *pValue,
  190. [out] long *pFlags);
  191. HRESULT put_ZoomRelative(
  192. [in] long Value,
  193. [in] long Flags);
  194. HRESULT getRange_ZoomRelative(
  195. [out] long *pMin,
  196. [out] long *pMax,
  197. [out] long *pSteppingDelta,
  198. [out] long* pDefault,
  199. [out] long* pCapsFlag);
  200. HRESULT get_PanRelative(
  201. [out] long *pValue,
  202. [out] long *pFlags);
  203. HRESULT put_PanRelative(
  204. [in] long Value,
  205. [in] long Flags);
  206. HRESULT get_TiltRelative(
  207. [out] long *pValue,
  208. [out] long *pFlags);
  209. HRESULT put_TiltRelative(
  210. [in] long Value,
  211. [in] long Flags);
  212. HRESULT getRange_TiltRelative(
  213. [out] long *pMin,
  214. [out] long *pMax,
  215. [out] long *pSteppingDelta,
  216. [out] long* pDefault,
  217. [out] long* pCapsFlag);
  218. HRESULT get_PanTiltRelative(
  219. [out] long *pPanValue,
  220. [out] long *pTiltValue,
  221. [out] long *pFlags);
  222. HRESULT put_PanTiltRelative(
  223. [in] long PanValue,
  224. [in] long TiltValue,
  225. [in] long Flags);
  226. HRESULT getRange_PanRelative(
  227. [out] long *pMin,
  228. [out] long *pMax,
  229. [out] long *pSteppingDelta,
  230. [out] long* pDefault,
  231. [out] long* pCapsFlag);
  232. HRESULT get_RollRelative(
  233. [out] long *pValue,
  234. [out] long *pFlags);
  235. HRESULT put_RollRelative(
  236. [in] long Value,
  237. [in] long Flags);
  238. HRESULT getRange_RollRelative(
  239. [out] long *pMin,
  240. [out] long *pMax,
  241. [out] long *pSteppingDelta,
  242. [out] long* pDefault,
  243. [out] long* pCapsFlag);
  244. HRESULT get_ScanMode(
  245. [out] long *pValue,
  246. [out] long *pFlags);
  247. HRESULT put_ScanMode(
  248. [in] long Value,
  249. [in] long Flags);
  250. HRESULT get_PrivacyMode(
  251. [out] long *pValue,
  252. [out] long *pFlags);
  253. HRESULT put_PrivacyMode(
  254. [in] long Value,
  255. [in] long Flags);
  256. }
  257. [
  258. object,
  259. local,
  260. uuid(4050560E-42A7-413a-85C2-09269A2D0F44),
  261. pointer_default(unique)
  262. ]
  263. interface IVideoProcAmp : IUnknown
  264. {
  265. HRESULT get_BacklightCompensation(
  266. [out] long *pValue,
  267. [out] long *pFlags);
  268. HRESULT put_BacklightCompensation(
  269. [in] long Value,
  270. [in] long Flags);
  271. HRESULT getRange_BacklightCompensation(
  272. [out] long *pMin,
  273. [out] long *pMax,
  274. [out] long *pSteppingDelta,
  275. [out] long* pDefault,
  276. [out] long* pCapsFlag);
  277. HRESULT get_Brightness(
  278. [out] long *pValue,
  279. [out] long *pFlags);
  280. HRESULT put_Brightness (
  281. [in] long Value,
  282. [in] long Flags);
  283. HRESULT getRange_Brightness(
  284. [out] long *pMin,
  285. [out] long *pMax,
  286. [out] long *pSteppingDelta,
  287. [out] long* pDefault,
  288. [out] long* pCapsFlag);
  289. HRESULT get_ColorEnable(
  290. [out] long *pValue,
  291. [out] long *pFlags);
  292. HRESULT put_ColorEnable(
  293. [in] long Value,
  294. [in] long Flags);
  295. HRESULT getRange_ColorEnable(
  296. [out] long *pMin,
  297. [out] long *pMax,
  298. [out] long *pSteppingDelta,
  299. [out] long* pDefault,
  300. [out] long* pCapsFlag);
  301. HRESULT get_Contrast(
  302. [out] long *pValue,
  303. [out] long *pFlags);
  304. HRESULT put_Contrast(
  305. [in] long Value,
  306. [in] long Flags);
  307. HRESULT getRange_Contrast(
  308. [out] long *pMin,
  309. [out] long *pMax,
  310. [out] long *pSteppingDelta,
  311. [out] long* pDefault,
  312. [out] long* pCapsFlag);
  313. HRESULT get_Gamma(
  314. [out] long *pValue,
  315. [out] long *pFlags);
  316. HRESULT put_Gamma(
  317. [in] long Value,
  318. [in] long Flags);
  319. HRESULT getRange_Gamma(
  320. [out] long *pMin,
  321. [out] long *pMax,
  322. [out] long *pSteppingDelta,
  323. [out] long* pDefault,
  324. [out] long* pCapsFlag);
  325. HRESULT get_Saturation(
  326. [out] long *pValue,
  327. [out] long *pFlags);
  328. HRESULT put_Saturation(
  329. [in] long Value,
  330. [in] long Flags);
  331. HRESULT getRange_Saturation(
  332. [out] long *pMin,
  333. [out] long *pMax,
  334. [out] long *pSteppingDelta,
  335. [out] long* pDefault,
  336. [out] long* pCapsFlag);
  337. HRESULT get_Sharpness(
  338. [out] long *pValue,
  339. [out] long *pFlags);
  340. HRESULT put_Sharpness(
  341. [in] long Value,
  342. [in] long Flags);
  343. HRESULT getRange_Sharpness(
  344. [out] long *pMin,
  345. [out] long *pMax,
  346. [out] long *pSteppingDelta,
  347. [out] long* pDefault,
  348. [out] long* pCapsFlag);
  349. HRESULT get_WhiteBalance(
  350. [out] long *pValue,
  351. [out] long *pFlags);
  352. HRESULT put_WhiteBalance(
  353. [in] long Value,
  354. [in] long Flags);
  355. HRESULT getRange_WhiteBalance(
  356. [out] long *pMin,
  357. [out] long *pMax,
  358. [out] long *pSteppingDelta,
  359. [out] long* pDefault,
  360. [out] long* pCapsFlag);
  361. HRESULT get_Gain(
  362. [out] long *pValue,
  363. [out] long *pFlags);
  364. HRESULT put_Gain(
  365. [in] long Value,
  366. [in] long Flags);
  367. HRESULT getRange_Gain(
  368. [out] long *pMin,
  369. [out] long *pMax,
  370. [out] long *pSteppingDelta,
  371. [out] long* pDefault,
  372. [out] long* pCapsFlag);
  373. HRESULT get_Hue(
  374. [out] long *pValue,
  375. [out] long *pFlags);
  376. HRESULT put_Hue(
  377. [in] long Value,
  378. [in] long Flags);
  379. HRESULT getRange_Hue(
  380. [out] long *pMin,
  381. [out] long *pMax,
  382. [out] long *pSteppingDelta,
  383. [out] long* pDefault,
  384. [out] long* pCapsFlag);
  385. HRESULT get_DigitalMultiplier(
  386. [out] long *pValue,
  387. [out] long *pFlags);
  388. HRESULT put_DigitalMultiplier(
  389. [in] long Value,
  390. [in] long Flags);
  391. HRESULT getRange_DigitalMultiplier(
  392. [out] long *pMin,
  393. [out] long *pMax,
  394. [out] long *pSteppingDelta,
  395. [out] long* pDefault,
  396. [out] long* pCapsFlag);
  397. HRESULT get_PowerlineFrequency(
  398. [out] long *pValue,
  399. [out] long *pFlags);
  400. HRESULT put_PowerlineFrequency(
  401. [in] long Value,
  402. [in] long Flags);
  403. HRESULT getRange_PowerlineFrequency(
  404. [out] long *pMin,
  405. [out] long *pMax,
  406. [out] long *pSteppingDelta,
  407. [out] long* pDefault,
  408. [out] long* pCapsFlag);
  409. HRESULT get_WhiteBalanceComponent(
  410. [out] long *pValue1,
  411. [out] long *pValue2,
  412. [in, out] long *pFlags);
  413. HRESULT put_WhiteBalanceComponent(
  414. [in] long Value1,
  415. [in] long Value2,
  416. [in] long Flags);
  417. HRESULT getRange_WhiteBalanceComponent(
  418. [out] long *pMin,
  419. [out] long *pMax,
  420. [out] long *pSteppingDelta,
  421. [out] long* pDefault,
  422. [in, out] long* pCapsFlag);
  423. }
  424. [
  425. object,
  426. local,
  427. uuid(11737C14-24A7-4bb5-81A0-0D003813B0C4),
  428. pointer_default(unique)
  429. ]
  430. interface IKsNodeControl :IUnknown
  431. {
  432. HRESULT put_NodeId([in] DWORD dwNodeId);
  433. HRESULT put_KsControl([in] PVOID pKsControl);
  434. }
  435. cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */")