1 /*** Autogenerated by WIDL 3.19 from include/wmsdkidl.idl - Do not edit ***/ 2 3 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 4 #define __REQUIRED_RPCNDR_H_VERSION__ 475 5 #endif 6 7 #include <rpc.h> 8 #include <rpcndr.h> 9 10 #ifndef COM_NO_WINDOWS_H 11 #include <windows.h> 12 #include <ole2.h> 13 #endif 14 15 #ifndef __wmsdkidl_h__ 16 #define __wmsdkidl_h__ 17 18 /* Forward declarations */ 19 20 #ifndef __IWMStatusCallback_FWD_DEFINED__ 21 #define __IWMStatusCallback_FWD_DEFINED__ 22 typedef interface IWMStatusCallback IWMStatusCallback; 23 #ifdef __cplusplus 24 interface IWMStatusCallback; 25 #endif /* __cplusplus */ 26 #endif 27 28 #ifndef __IWMReaderCallback_FWD_DEFINED__ 29 #define __IWMReaderCallback_FWD_DEFINED__ 30 typedef interface IWMReaderCallback IWMReaderCallback; 31 #ifdef __cplusplus 32 interface IWMReaderCallback; 33 #endif /* __cplusplus */ 34 #endif 35 36 #ifndef __IWMStreamList_FWD_DEFINED__ 37 #define __IWMStreamList_FWD_DEFINED__ 38 typedef interface IWMStreamList IWMStreamList; 39 #ifdef __cplusplus 40 interface IWMStreamList; 41 #endif /* __cplusplus */ 42 #endif 43 44 #ifndef __IWMMutualExclusion_FWD_DEFINED__ 45 #define __IWMMutualExclusion_FWD_DEFINED__ 46 typedef interface IWMMutualExclusion IWMMutualExclusion; 47 #ifdef __cplusplus 48 interface IWMMutualExclusion; 49 #endif /* __cplusplus */ 50 #endif 51 52 #ifndef __IWMBandwidthSharing_FWD_DEFINED__ 53 #define __IWMBandwidthSharing_FWD_DEFINED__ 54 typedef interface IWMBandwidthSharing IWMBandwidthSharing; 55 #ifdef __cplusplus 56 interface IWMBandwidthSharing; 57 #endif /* __cplusplus */ 58 #endif 59 60 #ifndef __IWMStreamPrioritization_FWD_DEFINED__ 61 #define __IWMStreamPrioritization_FWD_DEFINED__ 62 typedef interface IWMStreamPrioritization IWMStreamPrioritization; 63 #ifdef __cplusplus 64 interface IWMStreamPrioritization; 65 #endif /* __cplusplus */ 66 #endif 67 68 #ifndef __IWMStreamConfig_FWD_DEFINED__ 69 #define __IWMStreamConfig_FWD_DEFINED__ 70 typedef interface IWMStreamConfig IWMStreamConfig; 71 #ifdef __cplusplus 72 interface IWMStreamConfig; 73 #endif /* __cplusplus */ 74 #endif 75 76 #ifndef __IWMProfile_FWD_DEFINED__ 77 #define __IWMProfile_FWD_DEFINED__ 78 typedef interface IWMProfile IWMProfile; 79 #ifdef __cplusplus 80 interface IWMProfile; 81 #endif /* __cplusplus */ 82 #endif 83 84 #ifndef __IWMProfile2_FWD_DEFINED__ 85 #define __IWMProfile2_FWD_DEFINED__ 86 typedef interface IWMProfile2 IWMProfile2; 87 #ifdef __cplusplus 88 interface IWMProfile2; 89 #endif /* __cplusplus */ 90 #endif 91 92 #ifndef __IWMProfile3_FWD_DEFINED__ 93 #define __IWMProfile3_FWD_DEFINED__ 94 typedef interface IWMProfile3 IWMProfile3; 95 #ifdef __cplusplus 96 interface IWMProfile3; 97 #endif /* __cplusplus */ 98 #endif 99 100 #ifndef __IWMProfileManager_FWD_DEFINED__ 101 #define __IWMProfileManager_FWD_DEFINED__ 102 typedef interface IWMProfileManager IWMProfileManager; 103 #ifdef __cplusplus 104 interface IWMProfileManager; 105 #endif /* __cplusplus */ 106 #endif 107 108 #ifndef __IWMProfileManager2_FWD_DEFINED__ 109 #define __IWMProfileManager2_FWD_DEFINED__ 110 typedef interface IWMProfileManager2 IWMProfileManager2; 111 #ifdef __cplusplus 112 interface IWMProfileManager2; 113 #endif /* __cplusplus */ 114 #endif 115 116 #ifndef __IWMCodecInfo_FWD_DEFINED__ 117 #define __IWMCodecInfo_FWD_DEFINED__ 118 typedef interface IWMCodecInfo IWMCodecInfo; 119 #ifdef __cplusplus 120 interface IWMCodecInfo; 121 #endif /* __cplusplus */ 122 #endif 123 124 #ifndef __IWMCodecInfo2_FWD_DEFINED__ 125 #define __IWMCodecInfo2_FWD_DEFINED__ 126 typedef interface IWMCodecInfo2 IWMCodecInfo2; 127 #ifdef __cplusplus 128 interface IWMCodecInfo2; 129 #endif /* __cplusplus */ 130 #endif 131 132 #ifndef __IWMCodecInfo3_FWD_DEFINED__ 133 #define __IWMCodecInfo3_FWD_DEFINED__ 134 typedef interface IWMCodecInfo3 IWMCodecInfo3; 135 #ifdef __cplusplus 136 interface IWMCodecInfo3; 137 #endif /* __cplusplus */ 138 #endif 139 140 #ifndef __IWMMediaProps_FWD_DEFINED__ 141 #define __IWMMediaProps_FWD_DEFINED__ 142 typedef interface IWMMediaProps IWMMediaProps; 143 #ifdef __cplusplus 144 interface IWMMediaProps; 145 #endif /* __cplusplus */ 146 #endif 147 148 #ifndef __IWMOutputMediaProps_FWD_DEFINED__ 149 #define __IWMOutputMediaProps_FWD_DEFINED__ 150 typedef interface IWMOutputMediaProps IWMOutputMediaProps; 151 #ifdef __cplusplus 152 interface IWMOutputMediaProps; 153 #endif /* __cplusplus */ 154 #endif 155 156 #ifndef __IWMMetadataEditor_FWD_DEFINED__ 157 #define __IWMMetadataEditor_FWD_DEFINED__ 158 typedef interface IWMMetadataEditor IWMMetadataEditor; 159 #ifdef __cplusplus 160 interface IWMMetadataEditor; 161 #endif /* __cplusplus */ 162 #endif 163 164 #ifndef __IWMReader_FWD_DEFINED__ 165 #define __IWMReader_FWD_DEFINED__ 166 typedef interface IWMReader IWMReader; 167 #ifdef __cplusplus 168 interface IWMReader; 169 #endif /* __cplusplus */ 170 #endif 171 172 #ifndef __IWMPlayerHook_FWD_DEFINED__ 173 #define __IWMPlayerHook_FWD_DEFINED__ 174 typedef interface IWMPlayerHook IWMPlayerHook; 175 #ifdef __cplusplus 176 interface IWMPlayerHook; 177 #endif /* __cplusplus */ 178 #endif 179 180 #ifndef __IWMReaderAdvanced_FWD_DEFINED__ 181 #define __IWMReaderAdvanced_FWD_DEFINED__ 182 typedef interface IWMReaderAdvanced IWMReaderAdvanced; 183 #ifdef __cplusplus 184 interface IWMReaderAdvanced; 185 #endif /* __cplusplus */ 186 #endif 187 188 #ifndef __IWMReaderAdvanced2_FWD_DEFINED__ 189 #define __IWMReaderAdvanced2_FWD_DEFINED__ 190 typedef interface IWMReaderAdvanced2 IWMReaderAdvanced2; 191 #ifdef __cplusplus 192 interface IWMReaderAdvanced2; 193 #endif /* __cplusplus */ 194 #endif 195 196 #ifndef __IWMReaderAdvanced3_FWD_DEFINED__ 197 #define __IWMReaderAdvanced3_FWD_DEFINED__ 198 typedef interface IWMReaderAdvanced3 IWMReaderAdvanced3; 199 #ifdef __cplusplus 200 interface IWMReaderAdvanced3; 201 #endif /* __cplusplus */ 202 #endif 203 204 #ifndef __IWMReaderAdvanced4_FWD_DEFINED__ 205 #define __IWMReaderAdvanced4_FWD_DEFINED__ 206 typedef interface IWMReaderAdvanced4 IWMReaderAdvanced4; 207 #ifdef __cplusplus 208 interface IWMReaderAdvanced4; 209 #endif /* __cplusplus */ 210 #endif 211 212 #ifndef __IWMReaderAdvanced5_FWD_DEFINED__ 213 #define __IWMReaderAdvanced5_FWD_DEFINED__ 214 typedef interface IWMReaderAdvanced5 IWMReaderAdvanced5; 215 #ifdef __cplusplus 216 interface IWMReaderAdvanced5; 217 #endif /* __cplusplus */ 218 #endif 219 220 #ifndef __IWMReaderAdvanced6_FWD_DEFINED__ 221 #define __IWMReaderAdvanced6_FWD_DEFINED__ 222 typedef interface IWMReaderAdvanced6 IWMReaderAdvanced6; 223 #ifdef __cplusplus 224 interface IWMReaderAdvanced6; 225 #endif /* __cplusplus */ 226 #endif 227 228 #ifndef __IWMSyncReader_FWD_DEFINED__ 229 #define __IWMSyncReader_FWD_DEFINED__ 230 typedef interface IWMSyncReader IWMSyncReader; 231 #ifdef __cplusplus 232 interface IWMSyncReader; 233 #endif /* __cplusplus */ 234 #endif 235 236 #ifndef __IWMInputMediaProps_FWD_DEFINED__ 237 #define __IWMInputMediaProps_FWD_DEFINED__ 238 typedef interface IWMInputMediaProps IWMInputMediaProps; 239 #ifdef __cplusplus 240 interface IWMInputMediaProps; 241 #endif /* __cplusplus */ 242 #endif 243 244 #ifndef __IWMWriterSink_FWD_DEFINED__ 245 #define __IWMWriterSink_FWD_DEFINED__ 246 typedef interface IWMWriterSink IWMWriterSink; 247 #ifdef __cplusplus 248 interface IWMWriterSink; 249 #endif /* __cplusplus */ 250 #endif 251 252 #ifndef __IWMWriter_FWD_DEFINED__ 253 #define __IWMWriter_FWD_DEFINED__ 254 typedef interface IWMWriter IWMWriter; 255 #ifdef __cplusplus 256 interface IWMWriter; 257 #endif /* __cplusplus */ 258 #endif 259 260 #ifndef __IWMWriterAdvanced_FWD_DEFINED__ 261 #define __IWMWriterAdvanced_FWD_DEFINED__ 262 typedef interface IWMWriterAdvanced IWMWriterAdvanced; 263 #ifdef __cplusplus 264 interface IWMWriterAdvanced; 265 #endif /* __cplusplus */ 266 #endif 267 268 #ifndef __IWMWriterAdvanced2_FWD_DEFINED__ 269 #define __IWMWriterAdvanced2_FWD_DEFINED__ 270 typedef interface IWMWriterAdvanced2 IWMWriterAdvanced2; 271 #ifdef __cplusplus 272 interface IWMWriterAdvanced2; 273 #endif /* __cplusplus */ 274 #endif 275 276 #ifndef __IWMWriterAdvanced3_FWD_DEFINED__ 277 #define __IWMWriterAdvanced3_FWD_DEFINED__ 278 typedef interface IWMWriterAdvanced3 IWMWriterAdvanced3; 279 #ifdef __cplusplus 280 interface IWMWriterAdvanced3; 281 #endif /* __cplusplus */ 282 #endif 283 284 #ifndef __IWMHeaderInfo_FWD_DEFINED__ 285 #define __IWMHeaderInfo_FWD_DEFINED__ 286 typedef interface IWMHeaderInfo IWMHeaderInfo; 287 #ifdef __cplusplus 288 interface IWMHeaderInfo; 289 #endif /* __cplusplus */ 290 #endif 291 292 #ifndef __IWMHeaderInfo2_FWD_DEFINED__ 293 #define __IWMHeaderInfo2_FWD_DEFINED__ 294 typedef interface IWMHeaderInfo2 IWMHeaderInfo2; 295 #ifdef __cplusplus 296 interface IWMHeaderInfo2; 297 #endif /* __cplusplus */ 298 #endif 299 300 #ifndef __IWMHeaderInfo3_FWD_DEFINED__ 301 #define __IWMHeaderInfo3_FWD_DEFINED__ 302 typedef interface IWMHeaderInfo3 IWMHeaderInfo3; 303 #ifdef __cplusplus 304 interface IWMHeaderInfo3; 305 #endif /* __cplusplus */ 306 #endif 307 308 #ifndef __IWMReaderNetworkConfig_FWD_DEFINED__ 309 #define __IWMReaderNetworkConfig_FWD_DEFINED__ 310 typedef interface IWMReaderNetworkConfig IWMReaderNetworkConfig; 311 #ifdef __cplusplus 312 interface IWMReaderNetworkConfig; 313 #endif /* __cplusplus */ 314 #endif 315 316 #ifndef __IWMReaderNetworkConfig2_FWD_DEFINED__ 317 #define __IWMReaderNetworkConfig2_FWD_DEFINED__ 318 typedef interface IWMReaderNetworkConfig2 IWMReaderNetworkConfig2; 319 #ifdef __cplusplus 320 interface IWMReaderNetworkConfig2; 321 #endif /* __cplusplus */ 322 #endif 323 324 #ifndef __IWMReaderStreamClock_FWD_DEFINED__ 325 #define __IWMReaderStreamClock_FWD_DEFINED__ 326 typedef interface IWMReaderStreamClock IWMReaderStreamClock; 327 #ifdef __cplusplus 328 interface IWMReaderStreamClock; 329 #endif /* __cplusplus */ 330 #endif 331 332 #ifndef __IWMPacketSize_FWD_DEFINED__ 333 #define __IWMPacketSize_FWD_DEFINED__ 334 typedef interface IWMPacketSize IWMPacketSize; 335 #ifdef __cplusplus 336 interface IWMPacketSize; 337 #endif /* __cplusplus */ 338 #endif 339 340 #ifndef __IWMPacketSize2_FWD_DEFINED__ 341 #define __IWMPacketSize2_FWD_DEFINED__ 342 typedef interface IWMPacketSize2 IWMPacketSize2; 343 #ifdef __cplusplus 344 interface IWMPacketSize2; 345 #endif /* __cplusplus */ 346 #endif 347 348 #ifndef __IWMDRMReader_FWD_DEFINED__ 349 #define __IWMDRMReader_FWD_DEFINED__ 350 typedef interface IWMDRMReader IWMDRMReader; 351 #ifdef __cplusplus 352 interface IWMDRMReader; 353 #endif /* __cplusplus */ 354 #endif 355 356 #ifndef __IWMDRMReader2_FWD_DEFINED__ 357 #define __IWMDRMReader2_FWD_DEFINED__ 358 typedef interface IWMDRMReader2 IWMDRMReader2; 359 #ifdef __cplusplus 360 interface IWMDRMReader2; 361 #endif /* __cplusplus */ 362 #endif 363 364 #ifndef __IWMDRMReader3_FWD_DEFINED__ 365 #define __IWMDRMReader3_FWD_DEFINED__ 366 typedef interface IWMDRMReader3 IWMDRMReader3; 367 #ifdef __cplusplus 368 interface IWMDRMReader3; 369 #endif /* __cplusplus */ 370 #endif 371 372 #ifndef __IWMReaderAccelerator_FWD_DEFINED__ 373 #define __IWMReaderAccelerator_FWD_DEFINED__ 374 typedef interface IWMReaderAccelerator IWMReaderAccelerator; 375 #ifdef __cplusplus 376 interface IWMReaderAccelerator; 377 #endif /* __cplusplus */ 378 #endif 379 380 #ifndef __IWMReaderTimecode_FWD_DEFINED__ 381 #define __IWMReaderTimecode_FWD_DEFINED__ 382 typedef interface IWMReaderTimecode IWMReaderTimecode; 383 #ifdef __cplusplus 384 interface IWMReaderTimecode; 385 #endif /* __cplusplus */ 386 #endif 387 388 #ifndef __IWMReaderTypeNegotiation_FWD_DEFINED__ 389 #define __IWMReaderTypeNegotiation_FWD_DEFINED__ 390 typedef interface IWMReaderTypeNegotiation IWMReaderTypeNegotiation; 391 #ifdef __cplusplus 392 interface IWMReaderTypeNegotiation; 393 #endif /* __cplusplus */ 394 #endif 395 396 #ifndef __IWMLanguageList_FWD_DEFINED__ 397 #define __IWMLanguageList_FWD_DEFINED__ 398 typedef interface IWMLanguageList IWMLanguageList; 399 #ifdef __cplusplus 400 interface IWMLanguageList; 401 #endif /* __cplusplus */ 402 #endif 403 404 #ifndef __IWMReaderPlaylistBurn_FWD_DEFINED__ 405 #define __IWMReaderPlaylistBurn_FWD_DEFINED__ 406 typedef interface IWMReaderPlaylistBurn IWMReaderPlaylistBurn; 407 #ifdef __cplusplus 408 interface IWMReaderPlaylistBurn; 409 #endif /* __cplusplus */ 410 #endif 411 412 #ifndef __IWMPropertyVault_FWD_DEFINED__ 413 #define __IWMPropertyVault_FWD_DEFINED__ 414 typedef interface IWMPropertyVault IWMPropertyVault; 415 #ifdef __cplusplus 416 interface IWMPropertyVault; 417 #endif /* __cplusplus */ 418 #endif 419 420 #ifndef __IWMWriterPreprocess_FWD_DEFINED__ 421 #define __IWMWriterPreprocess_FWD_DEFINED__ 422 typedef interface IWMWriterPreprocess IWMWriterPreprocess; 423 #ifdef __cplusplus 424 interface IWMWriterPreprocess; 425 #endif /* __cplusplus */ 426 #endif 427 428 /* Headers for imported files */ 429 430 #include <oaidl.h> 431 #include <wmsbuffer.h> 432 #include <drmexternals.h> 433 434 #ifdef __cplusplus 435 extern "C" { 436 #endif 437 438 typedef struct _WMMediaType { 439 GUID majortype; 440 GUID subtype; 441 WINBOOL bFixedSizeSamples; 442 WINBOOL bTemporalCompression; 443 ULONG lSampleSize; 444 GUID formattype; 445 IUnknown *pUnk; 446 ULONG cbFormat; 447 BYTE *pbFormat; 448 } WM_MEDIA_TYPE; 449 typedef struct _WMWriterStatistics { 450 QWORD qwSampleCount; 451 QWORD qwByteCount; 452 QWORD qwDroppedSampleCount; 453 QWORD qwDroppedByteCount; 454 DWORD dwCurrentBitrate; 455 DWORD dwAverageBitrate; 456 DWORD dwExpectedBitrate; 457 DWORD dwCurrentSampleRate; 458 DWORD dwAverageSampleRate; 459 DWORD dwExpectedSampleRate; 460 } WM_WRITER_STATISTICS; 461 typedef struct _WMWriterStatisticsEx { 462 DWORD dwBitratePlusOverhead; 463 DWORD dwCurrentSampleDropRateInQueue; 464 DWORD dwCurrentSampleDropRateInCodec; 465 DWORD dwCurrentSampleDropRateInMultiplexer; 466 DWORD dwTotalSampleDropsInQueue; 467 DWORD dwTotalSampleDropsInCodec; 468 DWORD dwTotalSampleDropsInMultiplexer; 469 } WM_WRITER_STATISTICS_EX; 470 typedef struct _WMReaderStatistics { 471 DWORD cbSize; 472 DWORD dwBandwidth; 473 DWORD cPacketsReceived; 474 DWORD cPacketsRecovered; 475 DWORD cPacketsLost; 476 WORD wQuality; 477 } WM_READER_STATISTICS; 478 typedef struct _WMReaderClientInfo { 479 DWORD cbSize; 480 WCHAR *wszLang; 481 WCHAR *wszBrowserUserAgent; 482 WCHAR *wszBrowserWebPage; 483 QWORD qwReserved; 484 LPARAM *pReserved; 485 WCHAR *wszHostExe; 486 QWORD qwHostVersion; 487 WCHAR *wszPlayerUserAgent; 488 } WM_READER_CLIENTINFO; 489 typedef enum WMT_ATTR_DATATYPE { 490 WMT_TYPE_DWORD = 0, 491 WMT_TYPE_STRING = 1, 492 WMT_TYPE_BINARY = 2, 493 WMT_TYPE_BOOL = 3, 494 WMT_TYPE_QWORD = 4, 495 WMT_TYPE_WORD = 5, 496 WMT_TYPE_GUID = 6 497 } WMT_ATTR_DATATYPE; 498 typedef enum WMT_STATUS { 499 WMT_ERROR = 0, 500 WMT_OPENED = 1, 501 WMT_BUFFERING_START = 2, 502 WMT_BUFFERING_STOP = 3, 503 WMT_EOF = 4, 504 WMT_END_OF_FILE = 4, 505 WMT_END_OF_SEGMENT = 5, 506 WMT_END_OF_STREAMING = 6, 507 WMT_LOCATING = 7, 508 WMT_CONNECTING = 8, 509 WMT_NO_RIGHTS = 9, 510 WMT_MISSING_CODEC = 10, 511 WMT_STARTED = 11, 512 WMT_STOPPED = 12, 513 WMT_CLOSED = 13, 514 WMT_STRIDING = 14, 515 WMT_TIMER = 15, 516 WMT_INDEX_PROGRESS = 16, 517 WMT_SAVEAS_START = 17, 518 WMT_SAVEAS_STOP = 18, 519 WMT_NEW_SOURCEFLAGS = 19, 520 WMT_NEW_METADATA = 20, 521 WMT_BACKUPRESTORE_BEGIN = 21, 522 WMT_SOURCE_SWITCH = 22, 523 WMT_ACQUIRE_LICENSE = 23, 524 WMT_INDIVIDUALIZE = 24, 525 WMT_NEEDS_INDIVIDUALIZATION = 25, 526 WMT_NO_RIGHTS_EX = 26, 527 WMT_BACKUPRESTORE_END = 27, 528 WMT_BACKUPRESTORE_CONNECTING = 28, 529 WMT_BACKUPRESTORE_DISCONNECTING = 29, 530 WMT_ERROR_WITHURL = 30, 531 WMT_RESTRICTED_LICENSE = 31, 532 WMT_CLIENT_CONNECT = 32, 533 WMT_CLIENT_DISCONNECT = 33, 534 WMT_NATIVE_OUTPUT_PROPS_CHANGED = 34, 535 WMT_RECONNECT_START = 35, 536 WMT_RECONNECT_END = 36, 537 WMT_CLIENT_CONNECT_EX = 37, 538 WMT_CLIENT_DISCONNECT_EX = 38, 539 WMT_SET_FEC_SPAN = 39, 540 WMT_PREROLL_READY = 40, 541 WMT_PREROLL_COMPLETE = 41, 542 WMT_CLIENT_PROPERTIES = 42, 543 WMT_LICENSEURL_SIGNATURE_STATE = 43, 544 WMT_INIT_PLAYLIST_BURN = 44, 545 WMT_TRANSCRYPTOR_INIT = 45, 546 WMT_TRANSCRYPTOR_SEEKED = 46, 547 WMT_TRANSCRYPTOR_READ = 47, 548 WMT_TRANSCRYPTOR_CLOSED = 48, 549 WMT_PROXIMITY_RESULT = 49, 550 WMT_PROXIMITY_COMPLETED = 50, 551 WMT_CONTENT_ENABLER = 51 552 } WMT_STATUS; 553 typedef enum WMT_STREAM_SELECTION { 554 WMT_OFF = 0, 555 WMT_CLEANPOINT_ONLY = 1, 556 WMT_ON = 2 557 } WMT_STREAM_SELECTION; 558 typedef enum WMT_VERSION { 559 WMT_VER_4_0 = 0x40000, 560 WMT_VER_7_0 = 0x70000, 561 WMT_VER_8_0 = 0x80000, 562 WMT_VER_9_0 = 0x90000 563 } WMT_VERSION; 564 typedef enum WMT_PLAY_MODE { 565 WMT_PLAY_MODE_AUTOSELECT = 0, 566 WMT_PLAY_MODE_LOCAL = 1, 567 WMT_PLAY_MODE_DOWNLOAD = 2, 568 WMT_PLAY_MODE_STREAMING = 3 569 } WMT_PLAY_MODE; 570 typedef enum tagWMT_OFFSET_FORMAT { 571 WMT_OFFSET_FORMAT_100NS = 0, 572 WMT_OFFSET_FORMAT_FRAME_NUMBERS = 1, 573 WMT_OFFSET_FORMAT_PLAYLIST_OFFSET = 2, 574 WMT_OFFSET_FORMAT_TIMECODE = 3, 575 WMT_OFFSET_FORMAT_100NS_APPROXIMATE = 4 576 } WMT_OFFSET_FORMAT; 577 typedef enum WMT_CODEC_INFO_TYPE { 578 WMT_CODECINFO_AUDIO = 0, 579 WMT_CODECINFO_VIDEO = 1, 580 WMT_CODECINFO_UNKNOWN = 0xffffffff 581 } WMT_CODEC_INFO_TYPE; 582 typedef enum WMT_PROXY_SETTINGS { 583 WMT_PROXY_SETTING_NONE = 0, 584 WMT_PROXY_SETTING_MANUAL = 1, 585 WMT_PROXY_SETTING_AUTO = 2, 586 WMT_PROXY_SETTING_BROWSER = 3, 587 WMT_PROXY_SETTING_MAX = 4 588 } WMT_PROXY_SETTINGS; 589 typedef enum tagWMT_STORAGE_FORMAT { 590 WMT_Storage_Format_MP3 = 0, 591 WMT_Storage_Format_V1 = 1 592 } WMT_STORAGE_FORMAT; 593 typedef struct _WMStreamPrioritizationRecord { 594 WORD wStreamNumber; 595 WINBOOL fMandatory; 596 } WM_STREAM_PRIORITY_RECORD; 597 typedef struct _WM_PORT_NUMBER_RANGE { 598 WORD wPortBegin; 599 WORD wPortEnd; 600 } WM_PORT_NUMBER_RANGE; 601 typedef LPCWSTR LPCWSTR_WMSDK_TYPE_SAFE; 602 /***************************************************************************** 603 * IWMStatusCallback interface 604 */ 605 #ifndef __IWMStatusCallback_INTERFACE_DEFINED__ 606 #define __IWMStatusCallback_INTERFACE_DEFINED__ 607 608 DEFINE_GUID(IID_IWMStatusCallback, 0x6d7cdc70, 0x9888, 0x11d3, 0x8e,0xdc, 0x00,0xc0,0x4f,0x61,0x09,0xcf); 609 #if defined(__cplusplus) && !defined(CINTERFACE) 610 MIDL_INTERFACE("6d7cdc70-9888-11d3-8edc-00c04f6109cf") 611 IWMStatusCallback : public IUnknown 612 { 613 virtual HRESULT STDMETHODCALLTYPE OnStatus( 614 WMT_STATUS Status, 615 HRESULT hr, 616 WMT_ATTR_DATATYPE dwType, 617 BYTE *pValue, 618 void *pvContext) = 0; 619 620 }; 621 #ifdef __CRT_UUID_DECL 622 __CRT_UUID_DECL(IWMStatusCallback, 0x6d7cdc70, 0x9888, 0x11d3, 0x8e,0xdc, 0x00,0xc0,0x4f,0x61,0x09,0xcf) 623 #endif 624 #else 625 typedef struct IWMStatusCallbackVtbl { 626 BEGIN_INTERFACE 627 628 /*** IUnknown methods ***/ 629 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 630 IWMStatusCallback *This, 631 REFIID riid, 632 void **ppvObject); 633 634 ULONG (STDMETHODCALLTYPE *AddRef)( 635 IWMStatusCallback *This); 636 637 ULONG (STDMETHODCALLTYPE *Release)( 638 IWMStatusCallback *This); 639 640 /*** IWMStatusCallback methods ***/ 641 HRESULT (STDMETHODCALLTYPE *OnStatus)( 642 IWMStatusCallback *This, 643 WMT_STATUS Status, 644 HRESULT hr, 645 WMT_ATTR_DATATYPE dwType, 646 BYTE *pValue, 647 void *pvContext); 648 649 END_INTERFACE 650 } IWMStatusCallbackVtbl; 651 652 interface IWMStatusCallback { 653 CONST_VTBL IWMStatusCallbackVtbl* lpVtbl; 654 }; 655 656 #ifdef COBJMACROS 657 #ifndef WIDL_C_INLINE_WRAPPERS 658 /*** IUnknown methods ***/ 659 #define IWMStatusCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 660 #define IWMStatusCallback_AddRef(This) (This)->lpVtbl->AddRef(This) 661 #define IWMStatusCallback_Release(This) (This)->lpVtbl->Release(This) 662 /*** IWMStatusCallback methods ***/ 663 #define IWMStatusCallback_OnStatus(This,Status,hr,dwType,pValue,pvContext) (This)->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext) 664 #else 665 /*** IUnknown methods ***/ 666 static FORCEINLINE HRESULT IWMStatusCallback_QueryInterface(IWMStatusCallback* This,REFIID riid,void **ppvObject) { 667 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 668 } 669 static FORCEINLINE ULONG IWMStatusCallback_AddRef(IWMStatusCallback* This) { 670 return This->lpVtbl->AddRef(This); 671 } 672 static FORCEINLINE ULONG IWMStatusCallback_Release(IWMStatusCallback* This) { 673 return This->lpVtbl->Release(This); 674 } 675 /*** IWMStatusCallback methods ***/ 676 static FORCEINLINE HRESULT IWMStatusCallback_OnStatus(IWMStatusCallback* This,WMT_STATUS Status,HRESULT hr,WMT_ATTR_DATATYPE dwType,BYTE *pValue,void *pvContext) { 677 return This->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext); 678 } 679 #endif 680 #endif 681 682 #endif 683 684 685 #endif /* __IWMStatusCallback_INTERFACE_DEFINED__ */ 686 687 /***************************************************************************** 688 * IWMReaderCallback interface 689 */ 690 #ifndef __IWMReaderCallback_INTERFACE_DEFINED__ 691 #define __IWMReaderCallback_INTERFACE_DEFINED__ 692 693 DEFINE_GUID(IID_IWMReaderCallback, 0x96406bd8, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 694 #if defined(__cplusplus) && !defined(CINTERFACE) 695 MIDL_INTERFACE("96406bd8-2b2b-11d3-b36b-00c04f6108ff") 696 IWMReaderCallback : public IWMStatusCallback 697 { 698 virtual HRESULT STDMETHODCALLTYPE OnSample( 699 DWORD dwOutputNum, 700 QWORD cnsSampleTime, 701 QWORD cnsSampleDuration, 702 DWORD dwFlags, 703 INSSBuffer *pSample, 704 void *pvContext) = 0; 705 706 }; 707 #ifdef __CRT_UUID_DECL 708 __CRT_UUID_DECL(IWMReaderCallback, 0x96406bd8, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 709 #endif 710 #else 711 typedef struct IWMReaderCallbackVtbl { 712 BEGIN_INTERFACE 713 714 /*** IUnknown methods ***/ 715 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 716 IWMReaderCallback *This, 717 REFIID riid, 718 void **ppvObject); 719 720 ULONG (STDMETHODCALLTYPE *AddRef)( 721 IWMReaderCallback *This); 722 723 ULONG (STDMETHODCALLTYPE *Release)( 724 IWMReaderCallback *This); 725 726 /*** IWMStatusCallback methods ***/ 727 HRESULT (STDMETHODCALLTYPE *OnStatus)( 728 IWMReaderCallback *This, 729 WMT_STATUS Status, 730 HRESULT hr, 731 WMT_ATTR_DATATYPE dwType, 732 BYTE *pValue, 733 void *pvContext); 734 735 /*** IWMReaderCallback methods ***/ 736 HRESULT (STDMETHODCALLTYPE *OnSample)( 737 IWMReaderCallback *This, 738 DWORD dwOutputNum, 739 QWORD cnsSampleTime, 740 QWORD cnsSampleDuration, 741 DWORD dwFlags, 742 INSSBuffer *pSample, 743 void *pvContext); 744 745 END_INTERFACE 746 } IWMReaderCallbackVtbl; 747 748 interface IWMReaderCallback { 749 CONST_VTBL IWMReaderCallbackVtbl* lpVtbl; 750 }; 751 752 #ifdef COBJMACROS 753 #ifndef WIDL_C_INLINE_WRAPPERS 754 /*** IUnknown methods ***/ 755 #define IWMReaderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 756 #define IWMReaderCallback_AddRef(This) (This)->lpVtbl->AddRef(This) 757 #define IWMReaderCallback_Release(This) (This)->lpVtbl->Release(This) 758 /*** IWMStatusCallback methods ***/ 759 #define IWMReaderCallback_OnStatus(This,Status,hr,dwType,pValue,pvContext) (This)->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext) 760 /*** IWMReaderCallback methods ***/ 761 #define IWMReaderCallback_OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext) (This)->lpVtbl->OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext) 762 #else 763 /*** IUnknown methods ***/ 764 static FORCEINLINE HRESULT IWMReaderCallback_QueryInterface(IWMReaderCallback* This,REFIID riid,void **ppvObject) { 765 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 766 } 767 static FORCEINLINE ULONG IWMReaderCallback_AddRef(IWMReaderCallback* This) { 768 return This->lpVtbl->AddRef(This); 769 } 770 static FORCEINLINE ULONG IWMReaderCallback_Release(IWMReaderCallback* This) { 771 return This->lpVtbl->Release(This); 772 } 773 /*** IWMStatusCallback methods ***/ 774 static FORCEINLINE HRESULT IWMReaderCallback_OnStatus(IWMReaderCallback* This,WMT_STATUS Status,HRESULT hr,WMT_ATTR_DATATYPE dwType,BYTE *pValue,void *pvContext) { 775 return This->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext); 776 } 777 /*** IWMReaderCallback methods ***/ 778 static FORCEINLINE HRESULT IWMReaderCallback_OnSample(IWMReaderCallback* This,DWORD dwOutputNum,QWORD cnsSampleTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample,void *pvContext) { 779 return This->lpVtbl->OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext); 780 } 781 #endif 782 #endif 783 784 #endif 785 786 787 #endif /* __IWMReaderCallback_INTERFACE_DEFINED__ */ 788 789 /***************************************************************************** 790 * IWMStreamList interface 791 */ 792 #ifndef __IWMStreamList_INTERFACE_DEFINED__ 793 #define __IWMStreamList_INTERFACE_DEFINED__ 794 795 DEFINE_GUID(IID_IWMStreamList, 0x96406bdd, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 796 #if defined(__cplusplus) && !defined(CINTERFACE) 797 MIDL_INTERFACE("96406bdd-2b2b-11d3-b36b-00c04f6108ff") 798 IWMStreamList : public IUnknown 799 { 800 virtual HRESULT STDMETHODCALLTYPE GetStreams( 801 WORD *pwStreamNumArray, 802 WORD *pcStreams) = 0; 803 804 virtual HRESULT STDMETHODCALLTYPE AddStream( 805 WORD wStreamNum) = 0; 806 807 virtual HRESULT STDMETHODCALLTYPE RemoveStream( 808 WORD wStreamNum) = 0; 809 810 }; 811 #ifdef __CRT_UUID_DECL 812 __CRT_UUID_DECL(IWMStreamList, 0x96406bdd, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 813 #endif 814 #else 815 typedef struct IWMStreamListVtbl { 816 BEGIN_INTERFACE 817 818 /*** IUnknown methods ***/ 819 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 820 IWMStreamList *This, 821 REFIID riid, 822 void **ppvObject); 823 824 ULONG (STDMETHODCALLTYPE *AddRef)( 825 IWMStreamList *This); 826 827 ULONG (STDMETHODCALLTYPE *Release)( 828 IWMStreamList *This); 829 830 /*** IWMStreamList methods ***/ 831 HRESULT (STDMETHODCALLTYPE *GetStreams)( 832 IWMStreamList *This, 833 WORD *pwStreamNumArray, 834 WORD *pcStreams); 835 836 HRESULT (STDMETHODCALLTYPE *AddStream)( 837 IWMStreamList *This, 838 WORD wStreamNum); 839 840 HRESULT (STDMETHODCALLTYPE *RemoveStream)( 841 IWMStreamList *This, 842 WORD wStreamNum); 843 844 END_INTERFACE 845 } IWMStreamListVtbl; 846 847 interface IWMStreamList { 848 CONST_VTBL IWMStreamListVtbl* lpVtbl; 849 }; 850 851 #ifdef COBJMACROS 852 #ifndef WIDL_C_INLINE_WRAPPERS 853 /*** IUnknown methods ***/ 854 #define IWMStreamList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 855 #define IWMStreamList_AddRef(This) (This)->lpVtbl->AddRef(This) 856 #define IWMStreamList_Release(This) (This)->lpVtbl->Release(This) 857 /*** IWMStreamList methods ***/ 858 #define IWMStreamList_GetStreams(This,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams) 859 #define IWMStreamList_AddStream(This,wStreamNum) (This)->lpVtbl->AddStream(This,wStreamNum) 860 #define IWMStreamList_RemoveStream(This,wStreamNum) (This)->lpVtbl->RemoveStream(This,wStreamNum) 861 #else 862 /*** IUnknown methods ***/ 863 static FORCEINLINE HRESULT IWMStreamList_QueryInterface(IWMStreamList* This,REFIID riid,void **ppvObject) { 864 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 865 } 866 static FORCEINLINE ULONG IWMStreamList_AddRef(IWMStreamList* This) { 867 return This->lpVtbl->AddRef(This); 868 } 869 static FORCEINLINE ULONG IWMStreamList_Release(IWMStreamList* This) { 870 return This->lpVtbl->Release(This); 871 } 872 /*** IWMStreamList methods ***/ 873 static FORCEINLINE HRESULT IWMStreamList_GetStreams(IWMStreamList* This,WORD *pwStreamNumArray,WORD *pcStreams) { 874 return This->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams); 875 } 876 static FORCEINLINE HRESULT IWMStreamList_AddStream(IWMStreamList* This,WORD wStreamNum) { 877 return This->lpVtbl->AddStream(This,wStreamNum); 878 } 879 static FORCEINLINE HRESULT IWMStreamList_RemoveStream(IWMStreamList* This,WORD wStreamNum) { 880 return This->lpVtbl->RemoveStream(This,wStreamNum); 881 } 882 #endif 883 #endif 884 885 #endif 886 887 888 #endif /* __IWMStreamList_INTERFACE_DEFINED__ */ 889 890 /***************************************************************************** 891 * IWMMutualExclusion interface 892 */ 893 #ifndef __IWMMutualExclusion_INTERFACE_DEFINED__ 894 #define __IWMMutualExclusion_INTERFACE_DEFINED__ 895 896 DEFINE_GUID(IID_IWMMutualExclusion, 0x96406bde, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 897 #if defined(__cplusplus) && !defined(CINTERFACE) 898 MIDL_INTERFACE("96406bde-2b2b-11d3-b36b-00c04f6108ff") 899 IWMMutualExclusion : public IWMStreamList 900 { 901 virtual HRESULT STDMETHODCALLTYPE GetType( 902 GUID *pguidType) = 0; 903 904 virtual HRESULT STDMETHODCALLTYPE SetType( 905 REFGUID guidType) = 0; 906 907 }; 908 #ifdef __CRT_UUID_DECL 909 __CRT_UUID_DECL(IWMMutualExclusion, 0x96406bde, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 910 #endif 911 #else 912 typedef struct IWMMutualExclusionVtbl { 913 BEGIN_INTERFACE 914 915 /*** IUnknown methods ***/ 916 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 917 IWMMutualExclusion *This, 918 REFIID riid, 919 void **ppvObject); 920 921 ULONG (STDMETHODCALLTYPE *AddRef)( 922 IWMMutualExclusion *This); 923 924 ULONG (STDMETHODCALLTYPE *Release)( 925 IWMMutualExclusion *This); 926 927 /*** IWMStreamList methods ***/ 928 HRESULT (STDMETHODCALLTYPE *GetStreams)( 929 IWMMutualExclusion *This, 930 WORD *pwStreamNumArray, 931 WORD *pcStreams); 932 933 HRESULT (STDMETHODCALLTYPE *AddStream)( 934 IWMMutualExclusion *This, 935 WORD wStreamNum); 936 937 HRESULT (STDMETHODCALLTYPE *RemoveStream)( 938 IWMMutualExclusion *This, 939 WORD wStreamNum); 940 941 /*** IWMMutualExclusion methods ***/ 942 HRESULT (STDMETHODCALLTYPE *GetType)( 943 IWMMutualExclusion *This, 944 GUID *pguidType); 945 946 HRESULT (STDMETHODCALLTYPE *SetType)( 947 IWMMutualExclusion *This, 948 REFGUID guidType); 949 950 END_INTERFACE 951 } IWMMutualExclusionVtbl; 952 953 interface IWMMutualExclusion { 954 CONST_VTBL IWMMutualExclusionVtbl* lpVtbl; 955 }; 956 957 #ifdef COBJMACROS 958 #ifndef WIDL_C_INLINE_WRAPPERS 959 /*** IUnknown methods ***/ 960 #define IWMMutualExclusion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 961 #define IWMMutualExclusion_AddRef(This) (This)->lpVtbl->AddRef(This) 962 #define IWMMutualExclusion_Release(This) (This)->lpVtbl->Release(This) 963 /*** IWMStreamList methods ***/ 964 #define IWMMutualExclusion_GetStreams(This,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams) 965 #define IWMMutualExclusion_AddStream(This,wStreamNum) (This)->lpVtbl->AddStream(This,wStreamNum) 966 #define IWMMutualExclusion_RemoveStream(This,wStreamNum) (This)->lpVtbl->RemoveStream(This,wStreamNum) 967 /*** IWMMutualExclusion methods ***/ 968 #define IWMMutualExclusion_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType) 969 #define IWMMutualExclusion_SetType(This,guidType) (This)->lpVtbl->SetType(This,guidType) 970 #else 971 /*** IUnknown methods ***/ 972 static FORCEINLINE HRESULT IWMMutualExclusion_QueryInterface(IWMMutualExclusion* This,REFIID riid,void **ppvObject) { 973 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 974 } 975 static FORCEINLINE ULONG IWMMutualExclusion_AddRef(IWMMutualExclusion* This) { 976 return This->lpVtbl->AddRef(This); 977 } 978 static FORCEINLINE ULONG IWMMutualExclusion_Release(IWMMutualExclusion* This) { 979 return This->lpVtbl->Release(This); 980 } 981 /*** IWMStreamList methods ***/ 982 static FORCEINLINE HRESULT IWMMutualExclusion_GetStreams(IWMMutualExclusion* This,WORD *pwStreamNumArray,WORD *pcStreams) { 983 return This->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams); 984 } 985 static FORCEINLINE HRESULT IWMMutualExclusion_AddStream(IWMMutualExclusion* This,WORD wStreamNum) { 986 return This->lpVtbl->AddStream(This,wStreamNum); 987 } 988 static FORCEINLINE HRESULT IWMMutualExclusion_RemoveStream(IWMMutualExclusion* This,WORD wStreamNum) { 989 return This->lpVtbl->RemoveStream(This,wStreamNum); 990 } 991 /*** IWMMutualExclusion methods ***/ 992 static FORCEINLINE HRESULT IWMMutualExclusion_GetType(IWMMutualExclusion* This,GUID *pguidType) { 993 return This->lpVtbl->GetType(This,pguidType); 994 } 995 static FORCEINLINE HRESULT IWMMutualExclusion_SetType(IWMMutualExclusion* This,REFGUID guidType) { 996 return This->lpVtbl->SetType(This,guidType); 997 } 998 #endif 999 #endif 1000 1001 #endif 1002 1003 1004 #endif /* __IWMMutualExclusion_INTERFACE_DEFINED__ */ 1005 1006 /***************************************************************************** 1007 * IWMBandwidthSharing interface 1008 */ 1009 #ifndef __IWMBandwidthSharing_INTERFACE_DEFINED__ 1010 #define __IWMBandwidthSharing_INTERFACE_DEFINED__ 1011 1012 DEFINE_GUID(IID_IWMBandwidthSharing, 0xad694af1, 0xf8d9, 0x42f8, 0xbc,0x47, 0x70,0x31,0x1b,0x0c,0x4f,0x9e); 1013 #if defined(__cplusplus) && !defined(CINTERFACE) 1014 MIDL_INTERFACE("ad694af1-f8d9-42f8-bc47-70311b0c4f9e") 1015 IWMBandwidthSharing : public IWMStreamList 1016 { 1017 virtual HRESULT STDMETHODCALLTYPE GetType( 1018 GUID *guid) = 0; 1019 1020 virtual HRESULT STDMETHODCALLTYPE SetType( 1021 REFGUID guid) = 0; 1022 1023 virtual HRESULT STDMETHODCALLTYPE GetBandwidth( 1024 DWORD *bitrate, 1025 DWORD *buffer) = 0; 1026 1027 virtual HRESULT STDMETHODCALLTYPE SetBandwidth( 1028 DWORD bitrate, 1029 DWORD buffer) = 0; 1030 1031 }; 1032 #ifdef __CRT_UUID_DECL 1033 __CRT_UUID_DECL(IWMBandwidthSharing, 0xad694af1, 0xf8d9, 0x42f8, 0xbc,0x47, 0x70,0x31,0x1b,0x0c,0x4f,0x9e) 1034 #endif 1035 #else 1036 typedef struct IWMBandwidthSharingVtbl { 1037 BEGIN_INTERFACE 1038 1039 /*** IUnknown methods ***/ 1040 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1041 IWMBandwidthSharing *This, 1042 REFIID riid, 1043 void **ppvObject); 1044 1045 ULONG (STDMETHODCALLTYPE *AddRef)( 1046 IWMBandwidthSharing *This); 1047 1048 ULONG (STDMETHODCALLTYPE *Release)( 1049 IWMBandwidthSharing *This); 1050 1051 /*** IWMStreamList methods ***/ 1052 HRESULT (STDMETHODCALLTYPE *GetStreams)( 1053 IWMBandwidthSharing *This, 1054 WORD *pwStreamNumArray, 1055 WORD *pcStreams); 1056 1057 HRESULT (STDMETHODCALLTYPE *AddStream)( 1058 IWMBandwidthSharing *This, 1059 WORD wStreamNum); 1060 1061 HRESULT (STDMETHODCALLTYPE *RemoveStream)( 1062 IWMBandwidthSharing *This, 1063 WORD wStreamNum); 1064 1065 /*** IWMBandwidthSharing methods ***/ 1066 HRESULT (STDMETHODCALLTYPE *GetType)( 1067 IWMBandwidthSharing *This, 1068 GUID *guid); 1069 1070 HRESULT (STDMETHODCALLTYPE *SetType)( 1071 IWMBandwidthSharing *This, 1072 REFGUID guid); 1073 1074 HRESULT (STDMETHODCALLTYPE *GetBandwidth)( 1075 IWMBandwidthSharing *This, 1076 DWORD *bitrate, 1077 DWORD *buffer); 1078 1079 HRESULT (STDMETHODCALLTYPE *SetBandwidth)( 1080 IWMBandwidthSharing *This, 1081 DWORD bitrate, 1082 DWORD buffer); 1083 1084 END_INTERFACE 1085 } IWMBandwidthSharingVtbl; 1086 1087 interface IWMBandwidthSharing { 1088 CONST_VTBL IWMBandwidthSharingVtbl* lpVtbl; 1089 }; 1090 1091 #ifdef COBJMACROS 1092 #ifndef WIDL_C_INLINE_WRAPPERS 1093 /*** IUnknown methods ***/ 1094 #define IWMBandwidthSharing_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1095 #define IWMBandwidthSharing_AddRef(This) (This)->lpVtbl->AddRef(This) 1096 #define IWMBandwidthSharing_Release(This) (This)->lpVtbl->Release(This) 1097 /*** IWMStreamList methods ***/ 1098 #define IWMBandwidthSharing_GetStreams(This,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams) 1099 #define IWMBandwidthSharing_AddStream(This,wStreamNum) (This)->lpVtbl->AddStream(This,wStreamNum) 1100 #define IWMBandwidthSharing_RemoveStream(This,wStreamNum) (This)->lpVtbl->RemoveStream(This,wStreamNum) 1101 /*** IWMBandwidthSharing methods ***/ 1102 #define IWMBandwidthSharing_GetType(This,guid) (This)->lpVtbl->GetType(This,guid) 1103 #define IWMBandwidthSharing_SetType(This,guid) (This)->lpVtbl->SetType(This,guid) 1104 #define IWMBandwidthSharing_GetBandwidth(This,bitrate,buffer) (This)->lpVtbl->GetBandwidth(This,bitrate,buffer) 1105 #define IWMBandwidthSharing_SetBandwidth(This,bitrate,buffer) (This)->lpVtbl->SetBandwidth(This,bitrate,buffer) 1106 #else 1107 /*** IUnknown methods ***/ 1108 static FORCEINLINE HRESULT IWMBandwidthSharing_QueryInterface(IWMBandwidthSharing* This,REFIID riid,void **ppvObject) { 1109 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1110 } 1111 static FORCEINLINE ULONG IWMBandwidthSharing_AddRef(IWMBandwidthSharing* This) { 1112 return This->lpVtbl->AddRef(This); 1113 } 1114 static FORCEINLINE ULONG IWMBandwidthSharing_Release(IWMBandwidthSharing* This) { 1115 return This->lpVtbl->Release(This); 1116 } 1117 /*** IWMStreamList methods ***/ 1118 static FORCEINLINE HRESULT IWMBandwidthSharing_GetStreams(IWMBandwidthSharing* This,WORD *pwStreamNumArray,WORD *pcStreams) { 1119 return This->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams); 1120 } 1121 static FORCEINLINE HRESULT IWMBandwidthSharing_AddStream(IWMBandwidthSharing* This,WORD wStreamNum) { 1122 return This->lpVtbl->AddStream(This,wStreamNum); 1123 } 1124 static FORCEINLINE HRESULT IWMBandwidthSharing_RemoveStream(IWMBandwidthSharing* This,WORD wStreamNum) { 1125 return This->lpVtbl->RemoveStream(This,wStreamNum); 1126 } 1127 /*** IWMBandwidthSharing methods ***/ 1128 static FORCEINLINE HRESULT IWMBandwidthSharing_GetType(IWMBandwidthSharing* This,GUID *guid) { 1129 return This->lpVtbl->GetType(This,guid); 1130 } 1131 static FORCEINLINE HRESULT IWMBandwidthSharing_SetType(IWMBandwidthSharing* This,REFGUID guid) { 1132 return This->lpVtbl->SetType(This,guid); 1133 } 1134 static FORCEINLINE HRESULT IWMBandwidthSharing_GetBandwidth(IWMBandwidthSharing* This,DWORD *bitrate,DWORD *buffer) { 1135 return This->lpVtbl->GetBandwidth(This,bitrate,buffer); 1136 } 1137 static FORCEINLINE HRESULT IWMBandwidthSharing_SetBandwidth(IWMBandwidthSharing* This,DWORD bitrate,DWORD buffer) { 1138 return This->lpVtbl->SetBandwidth(This,bitrate,buffer); 1139 } 1140 #endif 1141 #endif 1142 1143 #endif 1144 1145 1146 #endif /* __IWMBandwidthSharing_INTERFACE_DEFINED__ */ 1147 1148 /***************************************************************************** 1149 * IWMStreamPrioritization interface 1150 */ 1151 #ifndef __IWMStreamPrioritization_INTERFACE_DEFINED__ 1152 #define __IWMStreamPrioritization_INTERFACE_DEFINED__ 1153 1154 DEFINE_GUID(IID_IWMStreamPrioritization, 0x8c1c6090, 0xf9a8, 0x4748, 0x8e,0xc3, 0xdd,0x11,0x08,0xba,0x1e,0x77); 1155 #if defined(__cplusplus) && !defined(CINTERFACE) 1156 MIDL_INTERFACE("8c1c6090-f9a8-4748-8ec3-dd1108ba1e77") 1157 IWMStreamPrioritization : public IUnknown 1158 { 1159 virtual HRESULT STDMETHODCALLTYPE GetPriorityRecords( 1160 WM_STREAM_PRIORITY_RECORD *array, 1161 WORD *records) = 0; 1162 1163 virtual HRESULT STDMETHODCALLTYPE SetPriorityRecords( 1164 WM_STREAM_PRIORITY_RECORD *array, 1165 WORD records) = 0; 1166 1167 }; 1168 #ifdef __CRT_UUID_DECL 1169 __CRT_UUID_DECL(IWMStreamPrioritization, 0x8c1c6090, 0xf9a8, 0x4748, 0x8e,0xc3, 0xdd,0x11,0x08,0xba,0x1e,0x77) 1170 #endif 1171 #else 1172 typedef struct IWMStreamPrioritizationVtbl { 1173 BEGIN_INTERFACE 1174 1175 /*** IUnknown methods ***/ 1176 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1177 IWMStreamPrioritization *This, 1178 REFIID riid, 1179 void **ppvObject); 1180 1181 ULONG (STDMETHODCALLTYPE *AddRef)( 1182 IWMStreamPrioritization *This); 1183 1184 ULONG (STDMETHODCALLTYPE *Release)( 1185 IWMStreamPrioritization *This); 1186 1187 /*** IWMStreamPrioritization methods ***/ 1188 HRESULT (STDMETHODCALLTYPE *GetPriorityRecords)( 1189 IWMStreamPrioritization *This, 1190 WM_STREAM_PRIORITY_RECORD *array, 1191 WORD *records); 1192 1193 HRESULT (STDMETHODCALLTYPE *SetPriorityRecords)( 1194 IWMStreamPrioritization *This, 1195 WM_STREAM_PRIORITY_RECORD *array, 1196 WORD records); 1197 1198 END_INTERFACE 1199 } IWMStreamPrioritizationVtbl; 1200 1201 interface IWMStreamPrioritization { 1202 CONST_VTBL IWMStreamPrioritizationVtbl* lpVtbl; 1203 }; 1204 1205 #ifdef COBJMACROS 1206 #ifndef WIDL_C_INLINE_WRAPPERS 1207 /*** IUnknown methods ***/ 1208 #define IWMStreamPrioritization_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1209 #define IWMStreamPrioritization_AddRef(This) (This)->lpVtbl->AddRef(This) 1210 #define IWMStreamPrioritization_Release(This) (This)->lpVtbl->Release(This) 1211 /*** IWMStreamPrioritization methods ***/ 1212 #define IWMStreamPrioritization_GetPriorityRecords(This,array,records) (This)->lpVtbl->GetPriorityRecords(This,array,records) 1213 #define IWMStreamPrioritization_SetPriorityRecords(This,array,records) (This)->lpVtbl->SetPriorityRecords(This,array,records) 1214 #else 1215 /*** IUnknown methods ***/ 1216 static FORCEINLINE HRESULT IWMStreamPrioritization_QueryInterface(IWMStreamPrioritization* This,REFIID riid,void **ppvObject) { 1217 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1218 } 1219 static FORCEINLINE ULONG IWMStreamPrioritization_AddRef(IWMStreamPrioritization* This) { 1220 return This->lpVtbl->AddRef(This); 1221 } 1222 static FORCEINLINE ULONG IWMStreamPrioritization_Release(IWMStreamPrioritization* This) { 1223 return This->lpVtbl->Release(This); 1224 } 1225 /*** IWMStreamPrioritization methods ***/ 1226 static FORCEINLINE HRESULT IWMStreamPrioritization_GetPriorityRecords(IWMStreamPrioritization* This,WM_STREAM_PRIORITY_RECORD *array,WORD *records) { 1227 return This->lpVtbl->GetPriorityRecords(This,array,records); 1228 } 1229 static FORCEINLINE HRESULT IWMStreamPrioritization_SetPriorityRecords(IWMStreamPrioritization* This,WM_STREAM_PRIORITY_RECORD *array,WORD records) { 1230 return This->lpVtbl->SetPriorityRecords(This,array,records); 1231 } 1232 #endif 1233 #endif 1234 1235 #endif 1236 1237 1238 #endif /* __IWMStreamPrioritization_INTERFACE_DEFINED__ */ 1239 1240 /***************************************************************************** 1241 * IWMStreamConfig interface 1242 */ 1243 #ifndef __IWMStreamConfig_INTERFACE_DEFINED__ 1244 #define __IWMStreamConfig_INTERFACE_DEFINED__ 1245 1246 DEFINE_GUID(IID_IWMStreamConfig, 0x96406bdc, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 1247 #if defined(__cplusplus) && !defined(CINTERFACE) 1248 MIDL_INTERFACE("96406bdc-2b2b-11d3-b36b-00c04f6108ff") 1249 IWMStreamConfig : public IUnknown 1250 { 1251 virtual HRESULT STDMETHODCALLTYPE GetStreamType( 1252 GUID *pguidStreamType) = 0; 1253 1254 virtual HRESULT STDMETHODCALLTYPE GetStreamNumber( 1255 WORD *pwStreamNum) = 0; 1256 1257 virtual HRESULT STDMETHODCALLTYPE SetStreamNumber( 1258 WORD wStreamNum) = 0; 1259 1260 virtual HRESULT STDMETHODCALLTYPE GetStreamName( 1261 WCHAR *pwszStreamName, 1262 WORD *pcchStreamName) = 0; 1263 1264 virtual HRESULT STDMETHODCALLTYPE SetStreamName( 1265 LPCWSTR_WMSDK_TYPE_SAFE pwszStreamName) = 0; 1266 1267 virtual HRESULT STDMETHODCALLTYPE GetConnectionName( 1268 WCHAR *pwszInputName, 1269 WORD *pcchInputName) = 0; 1270 1271 virtual HRESULT STDMETHODCALLTYPE SetConnectionName( 1272 LPCWSTR_WMSDK_TYPE_SAFE pwszInputName) = 0; 1273 1274 virtual HRESULT STDMETHODCALLTYPE GetBitrate( 1275 DWORD *pdwBitrate) = 0; 1276 1277 virtual HRESULT STDMETHODCALLTYPE SetBitrate( 1278 DWORD pdwBitrate) = 0; 1279 1280 virtual HRESULT STDMETHODCALLTYPE GetBufferWindow( 1281 DWORD *pmsBufferWindow) = 0; 1282 1283 virtual HRESULT STDMETHODCALLTYPE SetBufferWindow( 1284 DWORD msBufferWindow) = 0; 1285 1286 }; 1287 #ifdef __CRT_UUID_DECL 1288 __CRT_UUID_DECL(IWMStreamConfig, 0x96406bdc, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 1289 #endif 1290 #else 1291 typedef struct IWMStreamConfigVtbl { 1292 BEGIN_INTERFACE 1293 1294 /*** IUnknown methods ***/ 1295 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1296 IWMStreamConfig *This, 1297 REFIID riid, 1298 void **ppvObject); 1299 1300 ULONG (STDMETHODCALLTYPE *AddRef)( 1301 IWMStreamConfig *This); 1302 1303 ULONG (STDMETHODCALLTYPE *Release)( 1304 IWMStreamConfig *This); 1305 1306 /*** IWMStreamConfig methods ***/ 1307 HRESULT (STDMETHODCALLTYPE *GetStreamType)( 1308 IWMStreamConfig *This, 1309 GUID *pguidStreamType); 1310 1311 HRESULT (STDMETHODCALLTYPE *GetStreamNumber)( 1312 IWMStreamConfig *This, 1313 WORD *pwStreamNum); 1314 1315 HRESULT (STDMETHODCALLTYPE *SetStreamNumber)( 1316 IWMStreamConfig *This, 1317 WORD wStreamNum); 1318 1319 HRESULT (STDMETHODCALLTYPE *GetStreamName)( 1320 IWMStreamConfig *This, 1321 WCHAR *pwszStreamName, 1322 WORD *pcchStreamName); 1323 1324 HRESULT (STDMETHODCALLTYPE *SetStreamName)( 1325 IWMStreamConfig *This, 1326 LPCWSTR_WMSDK_TYPE_SAFE pwszStreamName); 1327 1328 HRESULT (STDMETHODCALLTYPE *GetConnectionName)( 1329 IWMStreamConfig *This, 1330 WCHAR *pwszInputName, 1331 WORD *pcchInputName); 1332 1333 HRESULT (STDMETHODCALLTYPE *SetConnectionName)( 1334 IWMStreamConfig *This, 1335 LPCWSTR_WMSDK_TYPE_SAFE pwszInputName); 1336 1337 HRESULT (STDMETHODCALLTYPE *GetBitrate)( 1338 IWMStreamConfig *This, 1339 DWORD *pdwBitrate); 1340 1341 HRESULT (STDMETHODCALLTYPE *SetBitrate)( 1342 IWMStreamConfig *This, 1343 DWORD pdwBitrate); 1344 1345 HRESULT (STDMETHODCALLTYPE *GetBufferWindow)( 1346 IWMStreamConfig *This, 1347 DWORD *pmsBufferWindow); 1348 1349 HRESULT (STDMETHODCALLTYPE *SetBufferWindow)( 1350 IWMStreamConfig *This, 1351 DWORD msBufferWindow); 1352 1353 END_INTERFACE 1354 } IWMStreamConfigVtbl; 1355 1356 interface IWMStreamConfig { 1357 CONST_VTBL IWMStreamConfigVtbl* lpVtbl; 1358 }; 1359 1360 #ifdef COBJMACROS 1361 #ifndef WIDL_C_INLINE_WRAPPERS 1362 /*** IUnknown methods ***/ 1363 #define IWMStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1364 #define IWMStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This) 1365 #define IWMStreamConfig_Release(This) (This)->lpVtbl->Release(This) 1366 /*** IWMStreamConfig methods ***/ 1367 #define IWMStreamConfig_GetStreamType(This,pguidStreamType) (This)->lpVtbl->GetStreamType(This,pguidStreamType) 1368 #define IWMStreamConfig_GetStreamNumber(This,pwStreamNum) (This)->lpVtbl->GetStreamNumber(This,pwStreamNum) 1369 #define IWMStreamConfig_SetStreamNumber(This,wStreamNum) (This)->lpVtbl->SetStreamNumber(This,wStreamNum) 1370 #define IWMStreamConfig_GetStreamName(This,pwszStreamName,pcchStreamName) (This)->lpVtbl->GetStreamName(This,pwszStreamName,pcchStreamName) 1371 #define IWMStreamConfig_SetStreamName(This,pwszStreamName) (This)->lpVtbl->SetStreamName(This,pwszStreamName) 1372 #define IWMStreamConfig_GetConnectionName(This,pwszInputName,pcchInputName) (This)->lpVtbl->GetConnectionName(This,pwszInputName,pcchInputName) 1373 #define IWMStreamConfig_SetConnectionName(This,pwszInputName) (This)->lpVtbl->SetConnectionName(This,pwszInputName) 1374 #define IWMStreamConfig_GetBitrate(This,pdwBitrate) (This)->lpVtbl->GetBitrate(This,pdwBitrate) 1375 #define IWMStreamConfig_SetBitrate(This,pdwBitrate) (This)->lpVtbl->SetBitrate(This,pdwBitrate) 1376 #define IWMStreamConfig_GetBufferWindow(This,pmsBufferWindow) (This)->lpVtbl->GetBufferWindow(This,pmsBufferWindow) 1377 #define IWMStreamConfig_SetBufferWindow(This,msBufferWindow) (This)->lpVtbl->SetBufferWindow(This,msBufferWindow) 1378 #else 1379 /*** IUnknown methods ***/ 1380 static FORCEINLINE HRESULT IWMStreamConfig_QueryInterface(IWMStreamConfig* This,REFIID riid,void **ppvObject) { 1381 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1382 } 1383 static FORCEINLINE ULONG IWMStreamConfig_AddRef(IWMStreamConfig* This) { 1384 return This->lpVtbl->AddRef(This); 1385 } 1386 static FORCEINLINE ULONG IWMStreamConfig_Release(IWMStreamConfig* This) { 1387 return This->lpVtbl->Release(This); 1388 } 1389 /*** IWMStreamConfig methods ***/ 1390 static FORCEINLINE HRESULT IWMStreamConfig_GetStreamType(IWMStreamConfig* This,GUID *pguidStreamType) { 1391 return This->lpVtbl->GetStreamType(This,pguidStreamType); 1392 } 1393 static FORCEINLINE HRESULT IWMStreamConfig_GetStreamNumber(IWMStreamConfig* This,WORD *pwStreamNum) { 1394 return This->lpVtbl->GetStreamNumber(This,pwStreamNum); 1395 } 1396 static FORCEINLINE HRESULT IWMStreamConfig_SetStreamNumber(IWMStreamConfig* This,WORD wStreamNum) { 1397 return This->lpVtbl->SetStreamNumber(This,wStreamNum); 1398 } 1399 static FORCEINLINE HRESULT IWMStreamConfig_GetStreamName(IWMStreamConfig* This,WCHAR *pwszStreamName,WORD *pcchStreamName) { 1400 return This->lpVtbl->GetStreamName(This,pwszStreamName,pcchStreamName); 1401 } 1402 static FORCEINLINE HRESULT IWMStreamConfig_SetStreamName(IWMStreamConfig* This,LPCWSTR_WMSDK_TYPE_SAFE pwszStreamName) { 1403 return This->lpVtbl->SetStreamName(This,pwszStreamName); 1404 } 1405 static FORCEINLINE HRESULT IWMStreamConfig_GetConnectionName(IWMStreamConfig* This,WCHAR *pwszInputName,WORD *pcchInputName) { 1406 return This->lpVtbl->GetConnectionName(This,pwszInputName,pcchInputName); 1407 } 1408 static FORCEINLINE HRESULT IWMStreamConfig_SetConnectionName(IWMStreamConfig* This,LPCWSTR_WMSDK_TYPE_SAFE pwszInputName) { 1409 return This->lpVtbl->SetConnectionName(This,pwszInputName); 1410 } 1411 static FORCEINLINE HRESULT IWMStreamConfig_GetBitrate(IWMStreamConfig* This,DWORD *pdwBitrate) { 1412 return This->lpVtbl->GetBitrate(This,pdwBitrate); 1413 } 1414 static FORCEINLINE HRESULT IWMStreamConfig_SetBitrate(IWMStreamConfig* This,DWORD pdwBitrate) { 1415 return This->lpVtbl->SetBitrate(This,pdwBitrate); 1416 } 1417 static FORCEINLINE HRESULT IWMStreamConfig_GetBufferWindow(IWMStreamConfig* This,DWORD *pmsBufferWindow) { 1418 return This->lpVtbl->GetBufferWindow(This,pmsBufferWindow); 1419 } 1420 static FORCEINLINE HRESULT IWMStreamConfig_SetBufferWindow(IWMStreamConfig* This,DWORD msBufferWindow) { 1421 return This->lpVtbl->SetBufferWindow(This,msBufferWindow); 1422 } 1423 #endif 1424 #endif 1425 1426 #endif 1427 1428 1429 #endif /* __IWMStreamConfig_INTERFACE_DEFINED__ */ 1430 1431 /***************************************************************************** 1432 * IWMProfile interface 1433 */ 1434 #ifndef __IWMProfile_INTERFACE_DEFINED__ 1435 #define __IWMProfile_INTERFACE_DEFINED__ 1436 1437 DEFINE_GUID(IID_IWMProfile, 0x96406bdb, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 1438 #if defined(__cplusplus) && !defined(CINTERFACE) 1439 MIDL_INTERFACE("96406bdb-2b2b-11d3-b36b-00c04f6108ff") 1440 IWMProfile : public IUnknown 1441 { 1442 virtual HRESULT STDMETHODCALLTYPE GetVersion( 1443 WMT_VERSION *pdwVersion) = 0; 1444 1445 virtual HRESULT STDMETHODCALLTYPE GetName( 1446 WCHAR *pwszName, 1447 DWORD *pcchName) = 0; 1448 1449 virtual HRESULT STDMETHODCALLTYPE SetName( 1450 const WCHAR *pwszName) = 0; 1451 1452 virtual HRESULT STDMETHODCALLTYPE GetDescription( 1453 WCHAR *pwszDescription, 1454 DWORD *pcchDescription) = 0; 1455 1456 virtual HRESULT STDMETHODCALLTYPE SetDescription( 1457 const WCHAR *pwszDescription) = 0; 1458 1459 virtual HRESULT STDMETHODCALLTYPE GetStreamCount( 1460 DWORD *pcStreams) = 0; 1461 1462 virtual HRESULT STDMETHODCALLTYPE GetStream( 1463 DWORD dwStreamIndex, 1464 IWMStreamConfig **ppConfig) = 0; 1465 1466 virtual HRESULT STDMETHODCALLTYPE GetStreamByNumber( 1467 WORD wStreamNum, 1468 IWMStreamConfig **ppConfig) = 0; 1469 1470 virtual HRESULT STDMETHODCALLTYPE RemoveStream( 1471 IWMStreamConfig *pConfig) = 0; 1472 1473 virtual HRESULT STDMETHODCALLTYPE RemoveStreamByNumber( 1474 WORD wStreamNum) = 0; 1475 1476 virtual HRESULT STDMETHODCALLTYPE AddStream( 1477 IWMStreamConfig *pConfig) = 0; 1478 1479 virtual HRESULT STDMETHODCALLTYPE ReconfigStream( 1480 IWMStreamConfig *pConfig) = 0; 1481 1482 virtual HRESULT STDMETHODCALLTYPE CreateNewStream( 1483 REFGUID guidStreamType, 1484 IWMStreamConfig **ppConfig) = 0; 1485 1486 virtual HRESULT STDMETHODCALLTYPE GetMutualExclusionCount( 1487 DWORD *pcME) = 0; 1488 1489 virtual HRESULT STDMETHODCALLTYPE GetMutualExclusion( 1490 DWORD dwMEIndex, 1491 IWMMutualExclusion **ppME) = 0; 1492 1493 virtual HRESULT STDMETHODCALLTYPE RemoveMutualExclusion( 1494 IWMMutualExclusion *pME) = 0; 1495 1496 virtual HRESULT STDMETHODCALLTYPE AddMutualExclusion( 1497 IWMMutualExclusion *pME) = 0; 1498 1499 virtual HRESULT STDMETHODCALLTYPE CreateNewMutualExclusion( 1500 IWMMutualExclusion **ppME) = 0; 1501 1502 }; 1503 #ifdef __CRT_UUID_DECL 1504 __CRT_UUID_DECL(IWMProfile, 0x96406bdb, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 1505 #endif 1506 #else 1507 typedef struct IWMProfileVtbl { 1508 BEGIN_INTERFACE 1509 1510 /*** IUnknown methods ***/ 1511 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1512 IWMProfile *This, 1513 REFIID riid, 1514 void **ppvObject); 1515 1516 ULONG (STDMETHODCALLTYPE *AddRef)( 1517 IWMProfile *This); 1518 1519 ULONG (STDMETHODCALLTYPE *Release)( 1520 IWMProfile *This); 1521 1522 /*** IWMProfile methods ***/ 1523 HRESULT (STDMETHODCALLTYPE *GetVersion)( 1524 IWMProfile *This, 1525 WMT_VERSION *pdwVersion); 1526 1527 HRESULT (STDMETHODCALLTYPE *GetName)( 1528 IWMProfile *This, 1529 WCHAR *pwszName, 1530 DWORD *pcchName); 1531 1532 HRESULT (STDMETHODCALLTYPE *SetName)( 1533 IWMProfile *This, 1534 const WCHAR *pwszName); 1535 1536 HRESULT (STDMETHODCALLTYPE *GetDescription)( 1537 IWMProfile *This, 1538 WCHAR *pwszDescription, 1539 DWORD *pcchDescription); 1540 1541 HRESULT (STDMETHODCALLTYPE *SetDescription)( 1542 IWMProfile *This, 1543 const WCHAR *pwszDescription); 1544 1545 HRESULT (STDMETHODCALLTYPE *GetStreamCount)( 1546 IWMProfile *This, 1547 DWORD *pcStreams); 1548 1549 HRESULT (STDMETHODCALLTYPE *GetStream)( 1550 IWMProfile *This, 1551 DWORD dwStreamIndex, 1552 IWMStreamConfig **ppConfig); 1553 1554 HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)( 1555 IWMProfile *This, 1556 WORD wStreamNum, 1557 IWMStreamConfig **ppConfig); 1558 1559 HRESULT (STDMETHODCALLTYPE *RemoveStream)( 1560 IWMProfile *This, 1561 IWMStreamConfig *pConfig); 1562 1563 HRESULT (STDMETHODCALLTYPE *RemoveStreamByNumber)( 1564 IWMProfile *This, 1565 WORD wStreamNum); 1566 1567 HRESULT (STDMETHODCALLTYPE *AddStream)( 1568 IWMProfile *This, 1569 IWMStreamConfig *pConfig); 1570 1571 HRESULT (STDMETHODCALLTYPE *ReconfigStream)( 1572 IWMProfile *This, 1573 IWMStreamConfig *pConfig); 1574 1575 HRESULT (STDMETHODCALLTYPE *CreateNewStream)( 1576 IWMProfile *This, 1577 REFGUID guidStreamType, 1578 IWMStreamConfig **ppConfig); 1579 1580 HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)( 1581 IWMProfile *This, 1582 DWORD *pcME); 1583 1584 HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)( 1585 IWMProfile *This, 1586 DWORD dwMEIndex, 1587 IWMMutualExclusion **ppME); 1588 1589 HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)( 1590 IWMProfile *This, 1591 IWMMutualExclusion *pME); 1592 1593 HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)( 1594 IWMProfile *This, 1595 IWMMutualExclusion *pME); 1596 1597 HRESULT (STDMETHODCALLTYPE *CreateNewMutualExclusion)( 1598 IWMProfile *This, 1599 IWMMutualExclusion **ppME); 1600 1601 END_INTERFACE 1602 } IWMProfileVtbl; 1603 1604 interface IWMProfile { 1605 CONST_VTBL IWMProfileVtbl* lpVtbl; 1606 }; 1607 1608 #ifdef COBJMACROS 1609 #ifndef WIDL_C_INLINE_WRAPPERS 1610 /*** IUnknown methods ***/ 1611 #define IWMProfile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1612 #define IWMProfile_AddRef(This) (This)->lpVtbl->AddRef(This) 1613 #define IWMProfile_Release(This) (This)->lpVtbl->Release(This) 1614 /*** IWMProfile methods ***/ 1615 #define IWMProfile_GetVersion(This,pdwVersion) (This)->lpVtbl->GetVersion(This,pdwVersion) 1616 #define IWMProfile_GetName(This,pwszName,pcchName) (This)->lpVtbl->GetName(This,pwszName,pcchName) 1617 #define IWMProfile_SetName(This,pwszName) (This)->lpVtbl->SetName(This,pwszName) 1618 #define IWMProfile_GetDescription(This,pwszDescription,pcchDescription) (This)->lpVtbl->GetDescription(This,pwszDescription,pcchDescription) 1619 #define IWMProfile_SetDescription(This,pwszDescription) (This)->lpVtbl->SetDescription(This,pwszDescription) 1620 #define IWMProfile_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams) 1621 #define IWMProfile_GetStream(This,dwStreamIndex,ppConfig) (This)->lpVtbl->GetStream(This,dwStreamIndex,ppConfig) 1622 #define IWMProfile_GetStreamByNumber(This,wStreamNum,ppConfig) (This)->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig) 1623 #define IWMProfile_RemoveStream(This,pConfig) (This)->lpVtbl->RemoveStream(This,pConfig) 1624 #define IWMProfile_RemoveStreamByNumber(This,wStreamNum) (This)->lpVtbl->RemoveStreamByNumber(This,wStreamNum) 1625 #define IWMProfile_AddStream(This,pConfig) (This)->lpVtbl->AddStream(This,pConfig) 1626 #define IWMProfile_ReconfigStream(This,pConfig) (This)->lpVtbl->ReconfigStream(This,pConfig) 1627 #define IWMProfile_CreateNewStream(This,guidStreamType,ppConfig) (This)->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig) 1628 #define IWMProfile_GetMutualExclusionCount(This,pcME) (This)->lpVtbl->GetMutualExclusionCount(This,pcME) 1629 #define IWMProfile_GetMutualExclusion(This,dwMEIndex,ppME) (This)->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME) 1630 #define IWMProfile_RemoveMutualExclusion(This,pME) (This)->lpVtbl->RemoveMutualExclusion(This,pME) 1631 #define IWMProfile_AddMutualExclusion(This,pME) (This)->lpVtbl->AddMutualExclusion(This,pME) 1632 #define IWMProfile_CreateNewMutualExclusion(This,ppME) (This)->lpVtbl->CreateNewMutualExclusion(This,ppME) 1633 #else 1634 /*** IUnknown methods ***/ 1635 static FORCEINLINE HRESULT IWMProfile_QueryInterface(IWMProfile* This,REFIID riid,void **ppvObject) { 1636 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1637 } 1638 static FORCEINLINE ULONG IWMProfile_AddRef(IWMProfile* This) { 1639 return This->lpVtbl->AddRef(This); 1640 } 1641 static FORCEINLINE ULONG IWMProfile_Release(IWMProfile* This) { 1642 return This->lpVtbl->Release(This); 1643 } 1644 /*** IWMProfile methods ***/ 1645 static FORCEINLINE HRESULT IWMProfile_GetVersion(IWMProfile* This,WMT_VERSION *pdwVersion) { 1646 return This->lpVtbl->GetVersion(This,pdwVersion); 1647 } 1648 static FORCEINLINE HRESULT IWMProfile_GetName(IWMProfile* This,WCHAR *pwszName,DWORD *pcchName) { 1649 return This->lpVtbl->GetName(This,pwszName,pcchName); 1650 } 1651 static FORCEINLINE HRESULT IWMProfile_SetName(IWMProfile* This,const WCHAR *pwszName) { 1652 return This->lpVtbl->SetName(This,pwszName); 1653 } 1654 static FORCEINLINE HRESULT IWMProfile_GetDescription(IWMProfile* This,WCHAR *pwszDescription,DWORD *pcchDescription) { 1655 return This->lpVtbl->GetDescription(This,pwszDescription,pcchDescription); 1656 } 1657 static FORCEINLINE HRESULT IWMProfile_SetDescription(IWMProfile* This,const WCHAR *pwszDescription) { 1658 return This->lpVtbl->SetDescription(This,pwszDescription); 1659 } 1660 static FORCEINLINE HRESULT IWMProfile_GetStreamCount(IWMProfile* This,DWORD *pcStreams) { 1661 return This->lpVtbl->GetStreamCount(This,pcStreams); 1662 } 1663 static FORCEINLINE HRESULT IWMProfile_GetStream(IWMProfile* This,DWORD dwStreamIndex,IWMStreamConfig **ppConfig) { 1664 return This->lpVtbl->GetStream(This,dwStreamIndex,ppConfig); 1665 } 1666 static FORCEINLINE HRESULT IWMProfile_GetStreamByNumber(IWMProfile* This,WORD wStreamNum,IWMStreamConfig **ppConfig) { 1667 return This->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig); 1668 } 1669 static FORCEINLINE HRESULT IWMProfile_RemoveStream(IWMProfile* This,IWMStreamConfig *pConfig) { 1670 return This->lpVtbl->RemoveStream(This,pConfig); 1671 } 1672 static FORCEINLINE HRESULT IWMProfile_RemoveStreamByNumber(IWMProfile* This,WORD wStreamNum) { 1673 return This->lpVtbl->RemoveStreamByNumber(This,wStreamNum); 1674 } 1675 static FORCEINLINE HRESULT IWMProfile_AddStream(IWMProfile* This,IWMStreamConfig *pConfig) { 1676 return This->lpVtbl->AddStream(This,pConfig); 1677 } 1678 static FORCEINLINE HRESULT IWMProfile_ReconfigStream(IWMProfile* This,IWMStreamConfig *pConfig) { 1679 return This->lpVtbl->ReconfigStream(This,pConfig); 1680 } 1681 static FORCEINLINE HRESULT IWMProfile_CreateNewStream(IWMProfile* This,REFGUID guidStreamType,IWMStreamConfig **ppConfig) { 1682 return This->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig); 1683 } 1684 static FORCEINLINE HRESULT IWMProfile_GetMutualExclusionCount(IWMProfile* This,DWORD *pcME) { 1685 return This->lpVtbl->GetMutualExclusionCount(This,pcME); 1686 } 1687 static FORCEINLINE HRESULT IWMProfile_GetMutualExclusion(IWMProfile* This,DWORD dwMEIndex,IWMMutualExclusion **ppME) { 1688 return This->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME); 1689 } 1690 static FORCEINLINE HRESULT IWMProfile_RemoveMutualExclusion(IWMProfile* This,IWMMutualExclusion *pME) { 1691 return This->lpVtbl->RemoveMutualExclusion(This,pME); 1692 } 1693 static FORCEINLINE HRESULT IWMProfile_AddMutualExclusion(IWMProfile* This,IWMMutualExclusion *pME) { 1694 return This->lpVtbl->AddMutualExclusion(This,pME); 1695 } 1696 static FORCEINLINE HRESULT IWMProfile_CreateNewMutualExclusion(IWMProfile* This,IWMMutualExclusion **ppME) { 1697 return This->lpVtbl->CreateNewMutualExclusion(This,ppME); 1698 } 1699 #endif 1700 #endif 1701 1702 #endif 1703 1704 1705 #endif /* __IWMProfile_INTERFACE_DEFINED__ */ 1706 1707 /***************************************************************************** 1708 * IWMProfile2 interface 1709 */ 1710 #ifndef __IWMProfile2_INTERFACE_DEFINED__ 1711 #define __IWMProfile2_INTERFACE_DEFINED__ 1712 1713 DEFINE_GUID(IID_IWMProfile2, 0x07e72d33, 0xd94e, 0x4be7, 0x88,0x43, 0x60,0xae,0x5f,0xf7,0xe5,0xf5); 1714 #if defined(__cplusplus) && !defined(CINTERFACE) 1715 MIDL_INTERFACE("07e72d33-d94e-4be7-8843-60ae5ff7e5f5") 1716 IWMProfile2 : public IWMProfile 1717 { 1718 virtual HRESULT STDMETHODCALLTYPE GetProfileID( 1719 GUID *guid) = 0; 1720 1721 }; 1722 #ifdef __CRT_UUID_DECL 1723 __CRT_UUID_DECL(IWMProfile2, 0x07e72d33, 0xd94e, 0x4be7, 0x88,0x43, 0x60,0xae,0x5f,0xf7,0xe5,0xf5) 1724 #endif 1725 #else 1726 typedef struct IWMProfile2Vtbl { 1727 BEGIN_INTERFACE 1728 1729 /*** IUnknown methods ***/ 1730 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1731 IWMProfile2 *This, 1732 REFIID riid, 1733 void **ppvObject); 1734 1735 ULONG (STDMETHODCALLTYPE *AddRef)( 1736 IWMProfile2 *This); 1737 1738 ULONG (STDMETHODCALLTYPE *Release)( 1739 IWMProfile2 *This); 1740 1741 /*** IWMProfile methods ***/ 1742 HRESULT (STDMETHODCALLTYPE *GetVersion)( 1743 IWMProfile2 *This, 1744 WMT_VERSION *pdwVersion); 1745 1746 HRESULT (STDMETHODCALLTYPE *GetName)( 1747 IWMProfile2 *This, 1748 WCHAR *pwszName, 1749 DWORD *pcchName); 1750 1751 HRESULT (STDMETHODCALLTYPE *SetName)( 1752 IWMProfile2 *This, 1753 const WCHAR *pwszName); 1754 1755 HRESULT (STDMETHODCALLTYPE *GetDescription)( 1756 IWMProfile2 *This, 1757 WCHAR *pwszDescription, 1758 DWORD *pcchDescription); 1759 1760 HRESULT (STDMETHODCALLTYPE *SetDescription)( 1761 IWMProfile2 *This, 1762 const WCHAR *pwszDescription); 1763 1764 HRESULT (STDMETHODCALLTYPE *GetStreamCount)( 1765 IWMProfile2 *This, 1766 DWORD *pcStreams); 1767 1768 HRESULT (STDMETHODCALLTYPE *GetStream)( 1769 IWMProfile2 *This, 1770 DWORD dwStreamIndex, 1771 IWMStreamConfig **ppConfig); 1772 1773 HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)( 1774 IWMProfile2 *This, 1775 WORD wStreamNum, 1776 IWMStreamConfig **ppConfig); 1777 1778 HRESULT (STDMETHODCALLTYPE *RemoveStream)( 1779 IWMProfile2 *This, 1780 IWMStreamConfig *pConfig); 1781 1782 HRESULT (STDMETHODCALLTYPE *RemoveStreamByNumber)( 1783 IWMProfile2 *This, 1784 WORD wStreamNum); 1785 1786 HRESULT (STDMETHODCALLTYPE *AddStream)( 1787 IWMProfile2 *This, 1788 IWMStreamConfig *pConfig); 1789 1790 HRESULT (STDMETHODCALLTYPE *ReconfigStream)( 1791 IWMProfile2 *This, 1792 IWMStreamConfig *pConfig); 1793 1794 HRESULT (STDMETHODCALLTYPE *CreateNewStream)( 1795 IWMProfile2 *This, 1796 REFGUID guidStreamType, 1797 IWMStreamConfig **ppConfig); 1798 1799 HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)( 1800 IWMProfile2 *This, 1801 DWORD *pcME); 1802 1803 HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)( 1804 IWMProfile2 *This, 1805 DWORD dwMEIndex, 1806 IWMMutualExclusion **ppME); 1807 1808 HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)( 1809 IWMProfile2 *This, 1810 IWMMutualExclusion *pME); 1811 1812 HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)( 1813 IWMProfile2 *This, 1814 IWMMutualExclusion *pME); 1815 1816 HRESULT (STDMETHODCALLTYPE *CreateNewMutualExclusion)( 1817 IWMProfile2 *This, 1818 IWMMutualExclusion **ppME); 1819 1820 /*** IWMProfile2 methods ***/ 1821 HRESULT (STDMETHODCALLTYPE *GetProfileID)( 1822 IWMProfile2 *This, 1823 GUID *guid); 1824 1825 END_INTERFACE 1826 } IWMProfile2Vtbl; 1827 1828 interface IWMProfile2 { 1829 CONST_VTBL IWMProfile2Vtbl* lpVtbl; 1830 }; 1831 1832 #ifdef COBJMACROS 1833 #ifndef WIDL_C_INLINE_WRAPPERS 1834 /*** IUnknown methods ***/ 1835 #define IWMProfile2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1836 #define IWMProfile2_AddRef(This) (This)->lpVtbl->AddRef(This) 1837 #define IWMProfile2_Release(This) (This)->lpVtbl->Release(This) 1838 /*** IWMProfile methods ***/ 1839 #define IWMProfile2_GetVersion(This,pdwVersion) (This)->lpVtbl->GetVersion(This,pdwVersion) 1840 #define IWMProfile2_GetName(This,pwszName,pcchName) (This)->lpVtbl->GetName(This,pwszName,pcchName) 1841 #define IWMProfile2_SetName(This,pwszName) (This)->lpVtbl->SetName(This,pwszName) 1842 #define IWMProfile2_GetDescription(This,pwszDescription,pcchDescription) (This)->lpVtbl->GetDescription(This,pwszDescription,pcchDescription) 1843 #define IWMProfile2_SetDescription(This,pwszDescription) (This)->lpVtbl->SetDescription(This,pwszDescription) 1844 #define IWMProfile2_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams) 1845 #define IWMProfile2_GetStream(This,dwStreamIndex,ppConfig) (This)->lpVtbl->GetStream(This,dwStreamIndex,ppConfig) 1846 #define IWMProfile2_GetStreamByNumber(This,wStreamNum,ppConfig) (This)->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig) 1847 #define IWMProfile2_RemoveStream(This,pConfig) (This)->lpVtbl->RemoveStream(This,pConfig) 1848 #define IWMProfile2_RemoveStreamByNumber(This,wStreamNum) (This)->lpVtbl->RemoveStreamByNumber(This,wStreamNum) 1849 #define IWMProfile2_AddStream(This,pConfig) (This)->lpVtbl->AddStream(This,pConfig) 1850 #define IWMProfile2_ReconfigStream(This,pConfig) (This)->lpVtbl->ReconfigStream(This,pConfig) 1851 #define IWMProfile2_CreateNewStream(This,guidStreamType,ppConfig) (This)->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig) 1852 #define IWMProfile2_GetMutualExclusionCount(This,pcME) (This)->lpVtbl->GetMutualExclusionCount(This,pcME) 1853 #define IWMProfile2_GetMutualExclusion(This,dwMEIndex,ppME) (This)->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME) 1854 #define IWMProfile2_RemoveMutualExclusion(This,pME) (This)->lpVtbl->RemoveMutualExclusion(This,pME) 1855 #define IWMProfile2_AddMutualExclusion(This,pME) (This)->lpVtbl->AddMutualExclusion(This,pME) 1856 #define IWMProfile2_CreateNewMutualExclusion(This,ppME) (This)->lpVtbl->CreateNewMutualExclusion(This,ppME) 1857 /*** IWMProfile2 methods ***/ 1858 #define IWMProfile2_GetProfileID(This,guid) (This)->lpVtbl->GetProfileID(This,guid) 1859 #else 1860 /*** IUnknown methods ***/ 1861 static FORCEINLINE HRESULT IWMProfile2_QueryInterface(IWMProfile2* This,REFIID riid,void **ppvObject) { 1862 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1863 } 1864 static FORCEINLINE ULONG IWMProfile2_AddRef(IWMProfile2* This) { 1865 return This->lpVtbl->AddRef(This); 1866 } 1867 static FORCEINLINE ULONG IWMProfile2_Release(IWMProfile2* This) { 1868 return This->lpVtbl->Release(This); 1869 } 1870 /*** IWMProfile methods ***/ 1871 static FORCEINLINE HRESULT IWMProfile2_GetVersion(IWMProfile2* This,WMT_VERSION *pdwVersion) { 1872 return This->lpVtbl->GetVersion(This,pdwVersion); 1873 } 1874 static FORCEINLINE HRESULT IWMProfile2_GetName(IWMProfile2* This,WCHAR *pwszName,DWORD *pcchName) { 1875 return This->lpVtbl->GetName(This,pwszName,pcchName); 1876 } 1877 static FORCEINLINE HRESULT IWMProfile2_SetName(IWMProfile2* This,const WCHAR *pwszName) { 1878 return This->lpVtbl->SetName(This,pwszName); 1879 } 1880 static FORCEINLINE HRESULT IWMProfile2_GetDescription(IWMProfile2* This,WCHAR *pwszDescription,DWORD *pcchDescription) { 1881 return This->lpVtbl->GetDescription(This,pwszDescription,pcchDescription); 1882 } 1883 static FORCEINLINE HRESULT IWMProfile2_SetDescription(IWMProfile2* This,const WCHAR *pwszDescription) { 1884 return This->lpVtbl->SetDescription(This,pwszDescription); 1885 } 1886 static FORCEINLINE HRESULT IWMProfile2_GetStreamCount(IWMProfile2* This,DWORD *pcStreams) { 1887 return This->lpVtbl->GetStreamCount(This,pcStreams); 1888 } 1889 static FORCEINLINE HRESULT IWMProfile2_GetStream(IWMProfile2* This,DWORD dwStreamIndex,IWMStreamConfig **ppConfig) { 1890 return This->lpVtbl->GetStream(This,dwStreamIndex,ppConfig); 1891 } 1892 static FORCEINLINE HRESULT IWMProfile2_GetStreamByNumber(IWMProfile2* This,WORD wStreamNum,IWMStreamConfig **ppConfig) { 1893 return This->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig); 1894 } 1895 static FORCEINLINE HRESULT IWMProfile2_RemoveStream(IWMProfile2* This,IWMStreamConfig *pConfig) { 1896 return This->lpVtbl->RemoveStream(This,pConfig); 1897 } 1898 static FORCEINLINE HRESULT IWMProfile2_RemoveStreamByNumber(IWMProfile2* This,WORD wStreamNum) { 1899 return This->lpVtbl->RemoveStreamByNumber(This,wStreamNum); 1900 } 1901 static FORCEINLINE HRESULT IWMProfile2_AddStream(IWMProfile2* This,IWMStreamConfig *pConfig) { 1902 return This->lpVtbl->AddStream(This,pConfig); 1903 } 1904 static FORCEINLINE HRESULT IWMProfile2_ReconfigStream(IWMProfile2* This,IWMStreamConfig *pConfig) { 1905 return This->lpVtbl->ReconfigStream(This,pConfig); 1906 } 1907 static FORCEINLINE HRESULT IWMProfile2_CreateNewStream(IWMProfile2* This,REFGUID guidStreamType,IWMStreamConfig **ppConfig) { 1908 return This->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig); 1909 } 1910 static FORCEINLINE HRESULT IWMProfile2_GetMutualExclusionCount(IWMProfile2* This,DWORD *pcME) { 1911 return This->lpVtbl->GetMutualExclusionCount(This,pcME); 1912 } 1913 static FORCEINLINE HRESULT IWMProfile2_GetMutualExclusion(IWMProfile2* This,DWORD dwMEIndex,IWMMutualExclusion **ppME) { 1914 return This->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME); 1915 } 1916 static FORCEINLINE HRESULT IWMProfile2_RemoveMutualExclusion(IWMProfile2* This,IWMMutualExclusion *pME) { 1917 return This->lpVtbl->RemoveMutualExclusion(This,pME); 1918 } 1919 static FORCEINLINE HRESULT IWMProfile2_AddMutualExclusion(IWMProfile2* This,IWMMutualExclusion *pME) { 1920 return This->lpVtbl->AddMutualExclusion(This,pME); 1921 } 1922 static FORCEINLINE HRESULT IWMProfile2_CreateNewMutualExclusion(IWMProfile2* This,IWMMutualExclusion **ppME) { 1923 return This->lpVtbl->CreateNewMutualExclusion(This,ppME); 1924 } 1925 /*** IWMProfile2 methods ***/ 1926 static FORCEINLINE HRESULT IWMProfile2_GetProfileID(IWMProfile2* This,GUID *guid) { 1927 return This->lpVtbl->GetProfileID(This,guid); 1928 } 1929 #endif 1930 #endif 1931 1932 #endif 1933 1934 1935 #endif /* __IWMProfile2_INTERFACE_DEFINED__ */ 1936 1937 /***************************************************************************** 1938 * IWMProfile3 interface 1939 */ 1940 #ifndef __IWMProfile3_INTERFACE_DEFINED__ 1941 #define __IWMProfile3_INTERFACE_DEFINED__ 1942 1943 DEFINE_GUID(IID_IWMProfile3, 0x00ef96cc, 0xa461, 0x4546, 0x8b,0xcd, 0xc9,0xa2,0x8f,0x0e,0x06,0xf5); 1944 #if defined(__cplusplus) && !defined(CINTERFACE) 1945 MIDL_INTERFACE("00ef96cc-a461-4546-8bcd-c9a28f0e06f5") 1946 IWMProfile3 : public IWMProfile2 1947 { 1948 virtual HRESULT STDMETHODCALLTYPE GetStorageFormat( 1949 WMT_STORAGE_FORMAT *storage) = 0; 1950 1951 virtual HRESULT STDMETHODCALLTYPE SetStorageFormat( 1952 WMT_STORAGE_FORMAT storage) = 0; 1953 1954 virtual HRESULT STDMETHODCALLTYPE GetBandwidthSharingCount( 1955 DWORD *count) = 0; 1956 1957 virtual HRESULT STDMETHODCALLTYPE GetBandwidthSharing( 1958 DWORD index, 1959 IWMBandwidthSharing **bandwidth) = 0; 1960 1961 virtual HRESULT STDMETHODCALLTYPE RemoveBandwidthSharing( 1962 IWMBandwidthSharing *bandwidth) = 0; 1963 1964 virtual HRESULT STDMETHODCALLTYPE AddBandwidthSharing( 1965 IWMBandwidthSharing *bandwidth) = 0; 1966 1967 virtual HRESULT STDMETHODCALLTYPE CreateNewBandwidthSharing( 1968 IWMBandwidthSharing **bandwidth) = 0; 1969 1970 virtual HRESULT STDMETHODCALLTYPE GetStreamPrioritization( 1971 IWMStreamPrioritization **stream) = 0; 1972 1973 virtual HRESULT STDMETHODCALLTYPE SetStreamPrioritization( 1974 IWMStreamPrioritization *stream) = 0; 1975 1976 virtual HRESULT STDMETHODCALLTYPE RemoveStreamPrioritization( 1977 ) = 0; 1978 1979 virtual HRESULT STDMETHODCALLTYPE CreateNewStreamPrioritization( 1980 IWMStreamPrioritization **stream) = 0; 1981 1982 virtual HRESULT STDMETHODCALLTYPE GetExpectedPacketCount( 1983 QWORD duration, 1984 QWORD *packets) = 0; 1985 1986 }; 1987 #ifdef __CRT_UUID_DECL 1988 __CRT_UUID_DECL(IWMProfile3, 0x00ef96cc, 0xa461, 0x4546, 0x8b,0xcd, 0xc9,0xa2,0x8f,0x0e,0x06,0xf5) 1989 #endif 1990 #else 1991 typedef struct IWMProfile3Vtbl { 1992 BEGIN_INTERFACE 1993 1994 /*** IUnknown methods ***/ 1995 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1996 IWMProfile3 *This, 1997 REFIID riid, 1998 void **ppvObject); 1999 2000 ULONG (STDMETHODCALLTYPE *AddRef)( 2001 IWMProfile3 *This); 2002 2003 ULONG (STDMETHODCALLTYPE *Release)( 2004 IWMProfile3 *This); 2005 2006 /*** IWMProfile methods ***/ 2007 HRESULT (STDMETHODCALLTYPE *GetVersion)( 2008 IWMProfile3 *This, 2009 WMT_VERSION *pdwVersion); 2010 2011 HRESULT (STDMETHODCALLTYPE *GetName)( 2012 IWMProfile3 *This, 2013 WCHAR *pwszName, 2014 DWORD *pcchName); 2015 2016 HRESULT (STDMETHODCALLTYPE *SetName)( 2017 IWMProfile3 *This, 2018 const WCHAR *pwszName); 2019 2020 HRESULT (STDMETHODCALLTYPE *GetDescription)( 2021 IWMProfile3 *This, 2022 WCHAR *pwszDescription, 2023 DWORD *pcchDescription); 2024 2025 HRESULT (STDMETHODCALLTYPE *SetDescription)( 2026 IWMProfile3 *This, 2027 const WCHAR *pwszDescription); 2028 2029 HRESULT (STDMETHODCALLTYPE *GetStreamCount)( 2030 IWMProfile3 *This, 2031 DWORD *pcStreams); 2032 2033 HRESULT (STDMETHODCALLTYPE *GetStream)( 2034 IWMProfile3 *This, 2035 DWORD dwStreamIndex, 2036 IWMStreamConfig **ppConfig); 2037 2038 HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)( 2039 IWMProfile3 *This, 2040 WORD wStreamNum, 2041 IWMStreamConfig **ppConfig); 2042 2043 HRESULT (STDMETHODCALLTYPE *RemoveStream)( 2044 IWMProfile3 *This, 2045 IWMStreamConfig *pConfig); 2046 2047 HRESULT (STDMETHODCALLTYPE *RemoveStreamByNumber)( 2048 IWMProfile3 *This, 2049 WORD wStreamNum); 2050 2051 HRESULT (STDMETHODCALLTYPE *AddStream)( 2052 IWMProfile3 *This, 2053 IWMStreamConfig *pConfig); 2054 2055 HRESULT (STDMETHODCALLTYPE *ReconfigStream)( 2056 IWMProfile3 *This, 2057 IWMStreamConfig *pConfig); 2058 2059 HRESULT (STDMETHODCALLTYPE *CreateNewStream)( 2060 IWMProfile3 *This, 2061 REFGUID guidStreamType, 2062 IWMStreamConfig **ppConfig); 2063 2064 HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)( 2065 IWMProfile3 *This, 2066 DWORD *pcME); 2067 2068 HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)( 2069 IWMProfile3 *This, 2070 DWORD dwMEIndex, 2071 IWMMutualExclusion **ppME); 2072 2073 HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)( 2074 IWMProfile3 *This, 2075 IWMMutualExclusion *pME); 2076 2077 HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)( 2078 IWMProfile3 *This, 2079 IWMMutualExclusion *pME); 2080 2081 HRESULT (STDMETHODCALLTYPE *CreateNewMutualExclusion)( 2082 IWMProfile3 *This, 2083 IWMMutualExclusion **ppME); 2084 2085 /*** IWMProfile2 methods ***/ 2086 HRESULT (STDMETHODCALLTYPE *GetProfileID)( 2087 IWMProfile3 *This, 2088 GUID *guid); 2089 2090 /*** IWMProfile3 methods ***/ 2091 HRESULT (STDMETHODCALLTYPE *GetStorageFormat)( 2092 IWMProfile3 *This, 2093 WMT_STORAGE_FORMAT *storage); 2094 2095 HRESULT (STDMETHODCALLTYPE *SetStorageFormat)( 2096 IWMProfile3 *This, 2097 WMT_STORAGE_FORMAT storage); 2098 2099 HRESULT (STDMETHODCALLTYPE *GetBandwidthSharingCount)( 2100 IWMProfile3 *This, 2101 DWORD *count); 2102 2103 HRESULT (STDMETHODCALLTYPE *GetBandwidthSharing)( 2104 IWMProfile3 *This, 2105 DWORD index, 2106 IWMBandwidthSharing **bandwidth); 2107 2108 HRESULT (STDMETHODCALLTYPE *RemoveBandwidthSharing)( 2109 IWMProfile3 *This, 2110 IWMBandwidthSharing *bandwidth); 2111 2112 HRESULT (STDMETHODCALLTYPE *AddBandwidthSharing)( 2113 IWMProfile3 *This, 2114 IWMBandwidthSharing *bandwidth); 2115 2116 HRESULT (STDMETHODCALLTYPE *CreateNewBandwidthSharing)( 2117 IWMProfile3 *This, 2118 IWMBandwidthSharing **bandwidth); 2119 2120 HRESULT (STDMETHODCALLTYPE *GetStreamPrioritization)( 2121 IWMProfile3 *This, 2122 IWMStreamPrioritization **stream); 2123 2124 HRESULT (STDMETHODCALLTYPE *SetStreamPrioritization)( 2125 IWMProfile3 *This, 2126 IWMStreamPrioritization *stream); 2127 2128 HRESULT (STDMETHODCALLTYPE *RemoveStreamPrioritization)( 2129 IWMProfile3 *This); 2130 2131 HRESULT (STDMETHODCALLTYPE *CreateNewStreamPrioritization)( 2132 IWMProfile3 *This, 2133 IWMStreamPrioritization **stream); 2134 2135 HRESULT (STDMETHODCALLTYPE *GetExpectedPacketCount)( 2136 IWMProfile3 *This, 2137 QWORD duration, 2138 QWORD *packets); 2139 2140 END_INTERFACE 2141 } IWMProfile3Vtbl; 2142 2143 interface IWMProfile3 { 2144 CONST_VTBL IWMProfile3Vtbl* lpVtbl; 2145 }; 2146 2147 #ifdef COBJMACROS 2148 #ifndef WIDL_C_INLINE_WRAPPERS 2149 /*** IUnknown methods ***/ 2150 #define IWMProfile3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2151 #define IWMProfile3_AddRef(This) (This)->lpVtbl->AddRef(This) 2152 #define IWMProfile3_Release(This) (This)->lpVtbl->Release(This) 2153 /*** IWMProfile methods ***/ 2154 #define IWMProfile3_GetVersion(This,pdwVersion) (This)->lpVtbl->GetVersion(This,pdwVersion) 2155 #define IWMProfile3_GetName(This,pwszName,pcchName) (This)->lpVtbl->GetName(This,pwszName,pcchName) 2156 #define IWMProfile3_SetName(This,pwszName) (This)->lpVtbl->SetName(This,pwszName) 2157 #define IWMProfile3_GetDescription(This,pwszDescription,pcchDescription) (This)->lpVtbl->GetDescription(This,pwszDescription,pcchDescription) 2158 #define IWMProfile3_SetDescription(This,pwszDescription) (This)->lpVtbl->SetDescription(This,pwszDescription) 2159 #define IWMProfile3_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams) 2160 #define IWMProfile3_GetStream(This,dwStreamIndex,ppConfig) (This)->lpVtbl->GetStream(This,dwStreamIndex,ppConfig) 2161 #define IWMProfile3_GetStreamByNumber(This,wStreamNum,ppConfig) (This)->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig) 2162 #define IWMProfile3_RemoveStream(This,pConfig) (This)->lpVtbl->RemoveStream(This,pConfig) 2163 #define IWMProfile3_RemoveStreamByNumber(This,wStreamNum) (This)->lpVtbl->RemoveStreamByNumber(This,wStreamNum) 2164 #define IWMProfile3_AddStream(This,pConfig) (This)->lpVtbl->AddStream(This,pConfig) 2165 #define IWMProfile3_ReconfigStream(This,pConfig) (This)->lpVtbl->ReconfigStream(This,pConfig) 2166 #define IWMProfile3_CreateNewStream(This,guidStreamType,ppConfig) (This)->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig) 2167 #define IWMProfile3_GetMutualExclusionCount(This,pcME) (This)->lpVtbl->GetMutualExclusionCount(This,pcME) 2168 #define IWMProfile3_GetMutualExclusion(This,dwMEIndex,ppME) (This)->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME) 2169 #define IWMProfile3_RemoveMutualExclusion(This,pME) (This)->lpVtbl->RemoveMutualExclusion(This,pME) 2170 #define IWMProfile3_AddMutualExclusion(This,pME) (This)->lpVtbl->AddMutualExclusion(This,pME) 2171 #define IWMProfile3_CreateNewMutualExclusion(This,ppME) (This)->lpVtbl->CreateNewMutualExclusion(This,ppME) 2172 /*** IWMProfile2 methods ***/ 2173 #define IWMProfile3_GetProfileID(This,guid) (This)->lpVtbl->GetProfileID(This,guid) 2174 /*** IWMProfile3 methods ***/ 2175 #define IWMProfile3_GetStorageFormat(This,storage) (This)->lpVtbl->GetStorageFormat(This,storage) 2176 #define IWMProfile3_SetStorageFormat(This,storage) (This)->lpVtbl->SetStorageFormat(This,storage) 2177 #define IWMProfile3_GetBandwidthSharingCount(This,count) (This)->lpVtbl->GetBandwidthSharingCount(This,count) 2178 #define IWMProfile3_GetBandwidthSharing(This,index,bandwidth) (This)->lpVtbl->GetBandwidthSharing(This,index,bandwidth) 2179 #define IWMProfile3_RemoveBandwidthSharing(This,bandwidth) (This)->lpVtbl->RemoveBandwidthSharing(This,bandwidth) 2180 #define IWMProfile3_AddBandwidthSharing(This,bandwidth) (This)->lpVtbl->AddBandwidthSharing(This,bandwidth) 2181 #define IWMProfile3_CreateNewBandwidthSharing(This,bandwidth) (This)->lpVtbl->CreateNewBandwidthSharing(This,bandwidth) 2182 #define IWMProfile3_GetStreamPrioritization(This,stream) (This)->lpVtbl->GetStreamPrioritization(This,stream) 2183 #define IWMProfile3_SetStreamPrioritization(This,stream) (This)->lpVtbl->SetStreamPrioritization(This,stream) 2184 #define IWMProfile3_RemoveStreamPrioritization(This) (This)->lpVtbl->RemoveStreamPrioritization(This) 2185 #define IWMProfile3_CreateNewStreamPrioritization(This,stream) (This)->lpVtbl->CreateNewStreamPrioritization(This,stream) 2186 #define IWMProfile3_GetExpectedPacketCount(This,duration,packets) (This)->lpVtbl->GetExpectedPacketCount(This,duration,packets) 2187 #else 2188 /*** IUnknown methods ***/ 2189 static FORCEINLINE HRESULT IWMProfile3_QueryInterface(IWMProfile3* This,REFIID riid,void **ppvObject) { 2190 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2191 } 2192 static FORCEINLINE ULONG IWMProfile3_AddRef(IWMProfile3* This) { 2193 return This->lpVtbl->AddRef(This); 2194 } 2195 static FORCEINLINE ULONG IWMProfile3_Release(IWMProfile3* This) { 2196 return This->lpVtbl->Release(This); 2197 } 2198 /*** IWMProfile methods ***/ 2199 static FORCEINLINE HRESULT IWMProfile3_GetVersion(IWMProfile3* This,WMT_VERSION *pdwVersion) { 2200 return This->lpVtbl->GetVersion(This,pdwVersion); 2201 } 2202 static FORCEINLINE HRESULT IWMProfile3_GetName(IWMProfile3* This,WCHAR *pwszName,DWORD *pcchName) { 2203 return This->lpVtbl->GetName(This,pwszName,pcchName); 2204 } 2205 static FORCEINLINE HRESULT IWMProfile3_SetName(IWMProfile3* This,const WCHAR *pwszName) { 2206 return This->lpVtbl->SetName(This,pwszName); 2207 } 2208 static FORCEINLINE HRESULT IWMProfile3_GetDescription(IWMProfile3* This,WCHAR *pwszDescription,DWORD *pcchDescription) { 2209 return This->lpVtbl->GetDescription(This,pwszDescription,pcchDescription); 2210 } 2211 static FORCEINLINE HRESULT IWMProfile3_SetDescription(IWMProfile3* This,const WCHAR *pwszDescription) { 2212 return This->lpVtbl->SetDescription(This,pwszDescription); 2213 } 2214 static FORCEINLINE HRESULT IWMProfile3_GetStreamCount(IWMProfile3* This,DWORD *pcStreams) { 2215 return This->lpVtbl->GetStreamCount(This,pcStreams); 2216 } 2217 static FORCEINLINE HRESULT IWMProfile3_GetStream(IWMProfile3* This,DWORD dwStreamIndex,IWMStreamConfig **ppConfig) { 2218 return This->lpVtbl->GetStream(This,dwStreamIndex,ppConfig); 2219 } 2220 static FORCEINLINE HRESULT IWMProfile3_GetStreamByNumber(IWMProfile3* This,WORD wStreamNum,IWMStreamConfig **ppConfig) { 2221 return This->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig); 2222 } 2223 static FORCEINLINE HRESULT IWMProfile3_RemoveStream(IWMProfile3* This,IWMStreamConfig *pConfig) { 2224 return This->lpVtbl->RemoveStream(This,pConfig); 2225 } 2226 static FORCEINLINE HRESULT IWMProfile3_RemoveStreamByNumber(IWMProfile3* This,WORD wStreamNum) { 2227 return This->lpVtbl->RemoveStreamByNumber(This,wStreamNum); 2228 } 2229 static FORCEINLINE HRESULT IWMProfile3_AddStream(IWMProfile3* This,IWMStreamConfig *pConfig) { 2230 return This->lpVtbl->AddStream(This,pConfig); 2231 } 2232 static FORCEINLINE HRESULT IWMProfile3_ReconfigStream(IWMProfile3* This,IWMStreamConfig *pConfig) { 2233 return This->lpVtbl->ReconfigStream(This,pConfig); 2234 } 2235 static FORCEINLINE HRESULT IWMProfile3_CreateNewStream(IWMProfile3* This,REFGUID guidStreamType,IWMStreamConfig **ppConfig) { 2236 return This->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig); 2237 } 2238 static FORCEINLINE HRESULT IWMProfile3_GetMutualExclusionCount(IWMProfile3* This,DWORD *pcME) { 2239 return This->lpVtbl->GetMutualExclusionCount(This,pcME); 2240 } 2241 static FORCEINLINE HRESULT IWMProfile3_GetMutualExclusion(IWMProfile3* This,DWORD dwMEIndex,IWMMutualExclusion **ppME) { 2242 return This->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME); 2243 } 2244 static FORCEINLINE HRESULT IWMProfile3_RemoveMutualExclusion(IWMProfile3* This,IWMMutualExclusion *pME) { 2245 return This->lpVtbl->RemoveMutualExclusion(This,pME); 2246 } 2247 static FORCEINLINE HRESULT IWMProfile3_AddMutualExclusion(IWMProfile3* This,IWMMutualExclusion *pME) { 2248 return This->lpVtbl->AddMutualExclusion(This,pME); 2249 } 2250 static FORCEINLINE HRESULT IWMProfile3_CreateNewMutualExclusion(IWMProfile3* This,IWMMutualExclusion **ppME) { 2251 return This->lpVtbl->CreateNewMutualExclusion(This,ppME); 2252 } 2253 /*** IWMProfile2 methods ***/ 2254 static FORCEINLINE HRESULT IWMProfile3_GetProfileID(IWMProfile3* This,GUID *guid) { 2255 return This->lpVtbl->GetProfileID(This,guid); 2256 } 2257 /*** IWMProfile3 methods ***/ 2258 static FORCEINLINE HRESULT IWMProfile3_GetStorageFormat(IWMProfile3* This,WMT_STORAGE_FORMAT *storage) { 2259 return This->lpVtbl->GetStorageFormat(This,storage); 2260 } 2261 static FORCEINLINE HRESULT IWMProfile3_SetStorageFormat(IWMProfile3* This,WMT_STORAGE_FORMAT storage) { 2262 return This->lpVtbl->SetStorageFormat(This,storage); 2263 } 2264 static FORCEINLINE HRESULT IWMProfile3_GetBandwidthSharingCount(IWMProfile3* This,DWORD *count) { 2265 return This->lpVtbl->GetBandwidthSharingCount(This,count); 2266 } 2267 static FORCEINLINE HRESULT IWMProfile3_GetBandwidthSharing(IWMProfile3* This,DWORD index,IWMBandwidthSharing **bandwidth) { 2268 return This->lpVtbl->GetBandwidthSharing(This,index,bandwidth); 2269 } 2270 static FORCEINLINE HRESULT IWMProfile3_RemoveBandwidthSharing(IWMProfile3* This,IWMBandwidthSharing *bandwidth) { 2271 return This->lpVtbl->RemoveBandwidthSharing(This,bandwidth); 2272 } 2273 static FORCEINLINE HRESULT IWMProfile3_AddBandwidthSharing(IWMProfile3* This,IWMBandwidthSharing *bandwidth) { 2274 return This->lpVtbl->AddBandwidthSharing(This,bandwidth); 2275 } 2276 static FORCEINLINE HRESULT IWMProfile3_CreateNewBandwidthSharing(IWMProfile3* This,IWMBandwidthSharing **bandwidth) { 2277 return This->lpVtbl->CreateNewBandwidthSharing(This,bandwidth); 2278 } 2279 static FORCEINLINE HRESULT IWMProfile3_GetStreamPrioritization(IWMProfile3* This,IWMStreamPrioritization **stream) { 2280 return This->lpVtbl->GetStreamPrioritization(This,stream); 2281 } 2282 static FORCEINLINE HRESULT IWMProfile3_SetStreamPrioritization(IWMProfile3* This,IWMStreamPrioritization *stream) { 2283 return This->lpVtbl->SetStreamPrioritization(This,stream); 2284 } 2285 static FORCEINLINE HRESULT IWMProfile3_RemoveStreamPrioritization(IWMProfile3* This) { 2286 return This->lpVtbl->RemoveStreamPrioritization(This); 2287 } 2288 static FORCEINLINE HRESULT IWMProfile3_CreateNewStreamPrioritization(IWMProfile3* This,IWMStreamPrioritization **stream) { 2289 return This->lpVtbl->CreateNewStreamPrioritization(This,stream); 2290 } 2291 static FORCEINLINE HRESULT IWMProfile3_GetExpectedPacketCount(IWMProfile3* This,QWORD duration,QWORD *packets) { 2292 return This->lpVtbl->GetExpectedPacketCount(This,duration,packets); 2293 } 2294 #endif 2295 #endif 2296 2297 #endif 2298 2299 2300 #endif /* __IWMProfile3_INTERFACE_DEFINED__ */ 2301 2302 /***************************************************************************** 2303 * IWMProfileManager interface 2304 */ 2305 #ifndef __IWMProfileManager_INTERFACE_DEFINED__ 2306 #define __IWMProfileManager_INTERFACE_DEFINED__ 2307 2308 DEFINE_GUID(IID_IWMProfileManager, 0xd16679f2, 0x6ca0, 0x472d, 0x8d,0x31, 0x2f,0x5d,0x55,0xae,0xe1,0x55); 2309 #if defined(__cplusplus) && !defined(CINTERFACE) 2310 MIDL_INTERFACE("d16679f2-6ca0-472d-8d31-2f5d55aee155") 2311 IWMProfileManager : public IUnknown 2312 { 2313 virtual HRESULT STDMETHODCALLTYPE CreateEmptyProfile( 2314 WMT_VERSION dwVersion, 2315 IWMProfile **ppProfile) = 0; 2316 2317 virtual HRESULT STDMETHODCALLTYPE LoadProfileByID( 2318 REFGUID guidProfile, 2319 IWMProfile **ppProfile) = 0; 2320 2321 virtual HRESULT STDMETHODCALLTYPE LoadProfileByData( 2322 const WCHAR *pwszProfile, 2323 IWMProfile **ppProfile) = 0; 2324 2325 virtual HRESULT STDMETHODCALLTYPE SaveProfile( 2326 IWMProfile *pIWMProfile, 2327 WCHAR *pwszProfile, 2328 DWORD *pdwLength) = 0; 2329 2330 virtual HRESULT STDMETHODCALLTYPE GetSystemProfileCount( 2331 DWORD *pcProfiles) = 0; 2332 2333 virtual HRESULT STDMETHODCALLTYPE LoadSystemProfile( 2334 DWORD dwProfileIndex, 2335 IWMProfile **ppProfile) = 0; 2336 2337 }; 2338 #ifdef __CRT_UUID_DECL 2339 __CRT_UUID_DECL(IWMProfileManager, 0xd16679f2, 0x6ca0, 0x472d, 0x8d,0x31, 0x2f,0x5d,0x55,0xae,0xe1,0x55) 2340 #endif 2341 #else 2342 typedef struct IWMProfileManagerVtbl { 2343 BEGIN_INTERFACE 2344 2345 /*** IUnknown methods ***/ 2346 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2347 IWMProfileManager *This, 2348 REFIID riid, 2349 void **ppvObject); 2350 2351 ULONG (STDMETHODCALLTYPE *AddRef)( 2352 IWMProfileManager *This); 2353 2354 ULONG (STDMETHODCALLTYPE *Release)( 2355 IWMProfileManager *This); 2356 2357 /*** IWMProfileManager methods ***/ 2358 HRESULT (STDMETHODCALLTYPE *CreateEmptyProfile)( 2359 IWMProfileManager *This, 2360 WMT_VERSION dwVersion, 2361 IWMProfile **ppProfile); 2362 2363 HRESULT (STDMETHODCALLTYPE *LoadProfileByID)( 2364 IWMProfileManager *This, 2365 REFGUID guidProfile, 2366 IWMProfile **ppProfile); 2367 2368 HRESULT (STDMETHODCALLTYPE *LoadProfileByData)( 2369 IWMProfileManager *This, 2370 const WCHAR *pwszProfile, 2371 IWMProfile **ppProfile); 2372 2373 HRESULT (STDMETHODCALLTYPE *SaveProfile)( 2374 IWMProfileManager *This, 2375 IWMProfile *pIWMProfile, 2376 WCHAR *pwszProfile, 2377 DWORD *pdwLength); 2378 2379 HRESULT (STDMETHODCALLTYPE *GetSystemProfileCount)( 2380 IWMProfileManager *This, 2381 DWORD *pcProfiles); 2382 2383 HRESULT (STDMETHODCALLTYPE *LoadSystemProfile)( 2384 IWMProfileManager *This, 2385 DWORD dwProfileIndex, 2386 IWMProfile **ppProfile); 2387 2388 END_INTERFACE 2389 } IWMProfileManagerVtbl; 2390 2391 interface IWMProfileManager { 2392 CONST_VTBL IWMProfileManagerVtbl* lpVtbl; 2393 }; 2394 2395 #ifdef COBJMACROS 2396 #ifndef WIDL_C_INLINE_WRAPPERS 2397 /*** IUnknown methods ***/ 2398 #define IWMProfileManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2399 #define IWMProfileManager_AddRef(This) (This)->lpVtbl->AddRef(This) 2400 #define IWMProfileManager_Release(This) (This)->lpVtbl->Release(This) 2401 /*** IWMProfileManager methods ***/ 2402 #define IWMProfileManager_CreateEmptyProfile(This,dwVersion,ppProfile) (This)->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile) 2403 #define IWMProfileManager_LoadProfileByID(This,guidProfile,ppProfile) (This)->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile) 2404 #define IWMProfileManager_LoadProfileByData(This,pwszProfile,ppProfile) (This)->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile) 2405 #define IWMProfileManager_SaveProfile(This,pIWMProfile,pwszProfile,pdwLength) (This)->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength) 2406 #define IWMProfileManager_GetSystemProfileCount(This,pcProfiles) (This)->lpVtbl->GetSystemProfileCount(This,pcProfiles) 2407 #define IWMProfileManager_LoadSystemProfile(This,dwProfileIndex,ppProfile) (This)->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile) 2408 #else 2409 /*** IUnknown methods ***/ 2410 static FORCEINLINE HRESULT IWMProfileManager_QueryInterface(IWMProfileManager* This,REFIID riid,void **ppvObject) { 2411 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2412 } 2413 static FORCEINLINE ULONG IWMProfileManager_AddRef(IWMProfileManager* This) { 2414 return This->lpVtbl->AddRef(This); 2415 } 2416 static FORCEINLINE ULONG IWMProfileManager_Release(IWMProfileManager* This) { 2417 return This->lpVtbl->Release(This); 2418 } 2419 /*** IWMProfileManager methods ***/ 2420 static FORCEINLINE HRESULT IWMProfileManager_CreateEmptyProfile(IWMProfileManager* This,WMT_VERSION dwVersion,IWMProfile **ppProfile) { 2421 return This->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile); 2422 } 2423 static FORCEINLINE HRESULT IWMProfileManager_LoadProfileByID(IWMProfileManager* This,REFGUID guidProfile,IWMProfile **ppProfile) { 2424 return This->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile); 2425 } 2426 static FORCEINLINE HRESULT IWMProfileManager_LoadProfileByData(IWMProfileManager* This,const WCHAR *pwszProfile,IWMProfile **ppProfile) { 2427 return This->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile); 2428 } 2429 static FORCEINLINE HRESULT IWMProfileManager_SaveProfile(IWMProfileManager* This,IWMProfile *pIWMProfile,WCHAR *pwszProfile,DWORD *pdwLength) { 2430 return This->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength); 2431 } 2432 static FORCEINLINE HRESULT IWMProfileManager_GetSystemProfileCount(IWMProfileManager* This,DWORD *pcProfiles) { 2433 return This->lpVtbl->GetSystemProfileCount(This,pcProfiles); 2434 } 2435 static FORCEINLINE HRESULT IWMProfileManager_LoadSystemProfile(IWMProfileManager* This,DWORD dwProfileIndex,IWMProfile **ppProfile) { 2436 return This->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile); 2437 } 2438 #endif 2439 #endif 2440 2441 #endif 2442 2443 2444 #endif /* __IWMProfileManager_INTERFACE_DEFINED__ */ 2445 2446 /***************************************************************************** 2447 * IWMProfileManager2 interface 2448 */ 2449 #ifndef __IWMProfileManager2_INTERFACE_DEFINED__ 2450 #define __IWMProfileManager2_INTERFACE_DEFINED__ 2451 2452 DEFINE_GUID(IID_IWMProfileManager2, 0x7a924e51, 0x73c1, 0x494d, 0x80,0x19, 0x23,0xd3,0x7e,0xd9,0xb8,0x9a); 2453 #if defined(__cplusplus) && !defined(CINTERFACE) 2454 MIDL_INTERFACE("7a924e51-73c1-494d-8019-23d37ed9b89a") 2455 IWMProfileManager2 : public IWMProfileManager 2456 { 2457 virtual HRESULT STDMETHODCALLTYPE GetSystemProfileVersion( 2458 WMT_VERSION *version) = 0; 2459 2460 virtual HRESULT STDMETHODCALLTYPE SetSystemProfileVersion( 2461 WMT_VERSION version) = 0; 2462 2463 }; 2464 #ifdef __CRT_UUID_DECL 2465 __CRT_UUID_DECL(IWMProfileManager2, 0x7a924e51, 0x73c1, 0x494d, 0x80,0x19, 0x23,0xd3,0x7e,0xd9,0xb8,0x9a) 2466 #endif 2467 #else 2468 typedef struct IWMProfileManager2Vtbl { 2469 BEGIN_INTERFACE 2470 2471 /*** IUnknown methods ***/ 2472 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2473 IWMProfileManager2 *This, 2474 REFIID riid, 2475 void **ppvObject); 2476 2477 ULONG (STDMETHODCALLTYPE *AddRef)( 2478 IWMProfileManager2 *This); 2479 2480 ULONG (STDMETHODCALLTYPE *Release)( 2481 IWMProfileManager2 *This); 2482 2483 /*** IWMProfileManager methods ***/ 2484 HRESULT (STDMETHODCALLTYPE *CreateEmptyProfile)( 2485 IWMProfileManager2 *This, 2486 WMT_VERSION dwVersion, 2487 IWMProfile **ppProfile); 2488 2489 HRESULT (STDMETHODCALLTYPE *LoadProfileByID)( 2490 IWMProfileManager2 *This, 2491 REFGUID guidProfile, 2492 IWMProfile **ppProfile); 2493 2494 HRESULT (STDMETHODCALLTYPE *LoadProfileByData)( 2495 IWMProfileManager2 *This, 2496 const WCHAR *pwszProfile, 2497 IWMProfile **ppProfile); 2498 2499 HRESULT (STDMETHODCALLTYPE *SaveProfile)( 2500 IWMProfileManager2 *This, 2501 IWMProfile *pIWMProfile, 2502 WCHAR *pwszProfile, 2503 DWORD *pdwLength); 2504 2505 HRESULT (STDMETHODCALLTYPE *GetSystemProfileCount)( 2506 IWMProfileManager2 *This, 2507 DWORD *pcProfiles); 2508 2509 HRESULT (STDMETHODCALLTYPE *LoadSystemProfile)( 2510 IWMProfileManager2 *This, 2511 DWORD dwProfileIndex, 2512 IWMProfile **ppProfile); 2513 2514 /*** IWMProfileManager2 methods ***/ 2515 HRESULT (STDMETHODCALLTYPE *GetSystemProfileVersion)( 2516 IWMProfileManager2 *This, 2517 WMT_VERSION *version); 2518 2519 HRESULT (STDMETHODCALLTYPE *SetSystemProfileVersion)( 2520 IWMProfileManager2 *This, 2521 WMT_VERSION version); 2522 2523 END_INTERFACE 2524 } IWMProfileManager2Vtbl; 2525 2526 interface IWMProfileManager2 { 2527 CONST_VTBL IWMProfileManager2Vtbl* lpVtbl; 2528 }; 2529 2530 #ifdef COBJMACROS 2531 #ifndef WIDL_C_INLINE_WRAPPERS 2532 /*** IUnknown methods ***/ 2533 #define IWMProfileManager2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2534 #define IWMProfileManager2_AddRef(This) (This)->lpVtbl->AddRef(This) 2535 #define IWMProfileManager2_Release(This) (This)->lpVtbl->Release(This) 2536 /*** IWMProfileManager methods ***/ 2537 #define IWMProfileManager2_CreateEmptyProfile(This,dwVersion,ppProfile) (This)->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile) 2538 #define IWMProfileManager2_LoadProfileByID(This,guidProfile,ppProfile) (This)->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile) 2539 #define IWMProfileManager2_LoadProfileByData(This,pwszProfile,ppProfile) (This)->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile) 2540 #define IWMProfileManager2_SaveProfile(This,pIWMProfile,pwszProfile,pdwLength) (This)->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength) 2541 #define IWMProfileManager2_GetSystemProfileCount(This,pcProfiles) (This)->lpVtbl->GetSystemProfileCount(This,pcProfiles) 2542 #define IWMProfileManager2_LoadSystemProfile(This,dwProfileIndex,ppProfile) (This)->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile) 2543 /*** IWMProfileManager2 methods ***/ 2544 #define IWMProfileManager2_GetSystemProfileVersion(This,version) (This)->lpVtbl->GetSystemProfileVersion(This,version) 2545 #define IWMProfileManager2_SetSystemProfileVersion(This,version) (This)->lpVtbl->SetSystemProfileVersion(This,version) 2546 #else 2547 /*** IUnknown methods ***/ 2548 static FORCEINLINE HRESULT IWMProfileManager2_QueryInterface(IWMProfileManager2* This,REFIID riid,void **ppvObject) { 2549 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2550 } 2551 static FORCEINLINE ULONG IWMProfileManager2_AddRef(IWMProfileManager2* This) { 2552 return This->lpVtbl->AddRef(This); 2553 } 2554 static FORCEINLINE ULONG IWMProfileManager2_Release(IWMProfileManager2* This) { 2555 return This->lpVtbl->Release(This); 2556 } 2557 /*** IWMProfileManager methods ***/ 2558 static FORCEINLINE HRESULT IWMProfileManager2_CreateEmptyProfile(IWMProfileManager2* This,WMT_VERSION dwVersion,IWMProfile **ppProfile) { 2559 return This->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile); 2560 } 2561 static FORCEINLINE HRESULT IWMProfileManager2_LoadProfileByID(IWMProfileManager2* This,REFGUID guidProfile,IWMProfile **ppProfile) { 2562 return This->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile); 2563 } 2564 static FORCEINLINE HRESULT IWMProfileManager2_LoadProfileByData(IWMProfileManager2* This,const WCHAR *pwszProfile,IWMProfile **ppProfile) { 2565 return This->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile); 2566 } 2567 static FORCEINLINE HRESULT IWMProfileManager2_SaveProfile(IWMProfileManager2* This,IWMProfile *pIWMProfile,WCHAR *pwszProfile,DWORD *pdwLength) { 2568 return This->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength); 2569 } 2570 static FORCEINLINE HRESULT IWMProfileManager2_GetSystemProfileCount(IWMProfileManager2* This,DWORD *pcProfiles) { 2571 return This->lpVtbl->GetSystemProfileCount(This,pcProfiles); 2572 } 2573 static FORCEINLINE HRESULT IWMProfileManager2_LoadSystemProfile(IWMProfileManager2* This,DWORD dwProfileIndex,IWMProfile **ppProfile) { 2574 return This->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile); 2575 } 2576 /*** IWMProfileManager2 methods ***/ 2577 static FORCEINLINE HRESULT IWMProfileManager2_GetSystemProfileVersion(IWMProfileManager2* This,WMT_VERSION *version) { 2578 return This->lpVtbl->GetSystemProfileVersion(This,version); 2579 } 2580 static FORCEINLINE HRESULT IWMProfileManager2_SetSystemProfileVersion(IWMProfileManager2* This,WMT_VERSION version) { 2581 return This->lpVtbl->SetSystemProfileVersion(This,version); 2582 } 2583 #endif 2584 #endif 2585 2586 #endif 2587 2588 2589 #endif /* __IWMProfileManager2_INTERFACE_DEFINED__ */ 2590 2591 HRESULT WINAPI WMCreateProfileManager(IWMProfileManager**); 2592 /***************************************************************************** 2593 * IWMCodecInfo interface 2594 */ 2595 #ifndef __IWMCodecInfo_INTERFACE_DEFINED__ 2596 #define __IWMCodecInfo_INTERFACE_DEFINED__ 2597 2598 DEFINE_GUID(IID_IWMCodecInfo, 0xa970f41e, 0x34de, 0x4a98, 0xb3,0xba, 0xe4,0xb3,0xca,0x75,0x28,0xf0); 2599 #if defined(__cplusplus) && !defined(CINTERFACE) 2600 MIDL_INTERFACE("a970f41e-34de-4a98-b3ba-e4b3ca7528f0") 2601 IWMCodecInfo : public IUnknown 2602 { 2603 virtual HRESULT STDMETHODCALLTYPE GetCodecInfoCount( 2604 REFGUID guid, 2605 DWORD *count) = 0; 2606 2607 virtual HRESULT STDMETHODCALLTYPE GetCodecFormatCount( 2608 REFGUID guid, 2609 DWORD codecindex, 2610 DWORD *formatcount) = 0; 2611 2612 virtual HRESULT STDMETHODCALLTYPE GetCodecFormat( 2613 REFGUID guid, 2614 DWORD codecindex, 2615 DWORD formatindex, 2616 IWMStreamConfig **streamconfig) = 0; 2617 2618 }; 2619 #ifdef __CRT_UUID_DECL 2620 __CRT_UUID_DECL(IWMCodecInfo, 0xa970f41e, 0x34de, 0x4a98, 0xb3,0xba, 0xe4,0xb3,0xca,0x75,0x28,0xf0) 2621 #endif 2622 #else 2623 typedef struct IWMCodecInfoVtbl { 2624 BEGIN_INTERFACE 2625 2626 /*** IUnknown methods ***/ 2627 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2628 IWMCodecInfo *This, 2629 REFIID riid, 2630 void **ppvObject); 2631 2632 ULONG (STDMETHODCALLTYPE *AddRef)( 2633 IWMCodecInfo *This); 2634 2635 ULONG (STDMETHODCALLTYPE *Release)( 2636 IWMCodecInfo *This); 2637 2638 /*** IWMCodecInfo methods ***/ 2639 HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)( 2640 IWMCodecInfo *This, 2641 REFGUID guid, 2642 DWORD *count); 2643 2644 HRESULT (STDMETHODCALLTYPE *GetCodecFormatCount)( 2645 IWMCodecInfo *This, 2646 REFGUID guid, 2647 DWORD codecindex, 2648 DWORD *formatcount); 2649 2650 HRESULT (STDMETHODCALLTYPE *GetCodecFormat)( 2651 IWMCodecInfo *This, 2652 REFGUID guid, 2653 DWORD codecindex, 2654 DWORD formatindex, 2655 IWMStreamConfig **streamconfig); 2656 2657 END_INTERFACE 2658 } IWMCodecInfoVtbl; 2659 2660 interface IWMCodecInfo { 2661 CONST_VTBL IWMCodecInfoVtbl* lpVtbl; 2662 }; 2663 2664 #ifdef COBJMACROS 2665 #ifndef WIDL_C_INLINE_WRAPPERS 2666 /*** IUnknown methods ***/ 2667 #define IWMCodecInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2668 #define IWMCodecInfo_AddRef(This) (This)->lpVtbl->AddRef(This) 2669 #define IWMCodecInfo_Release(This) (This)->lpVtbl->Release(This) 2670 /*** IWMCodecInfo methods ***/ 2671 #define IWMCodecInfo_GetCodecInfoCount(This,guid,count) (This)->lpVtbl->GetCodecInfoCount(This,guid,count) 2672 #define IWMCodecInfo_GetCodecFormatCount(This,guid,codecindex,formatcount) (This)->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount) 2673 #define IWMCodecInfo_GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) (This)->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) 2674 #else 2675 /*** IUnknown methods ***/ 2676 static FORCEINLINE HRESULT IWMCodecInfo_QueryInterface(IWMCodecInfo* This,REFIID riid,void **ppvObject) { 2677 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2678 } 2679 static FORCEINLINE ULONG IWMCodecInfo_AddRef(IWMCodecInfo* This) { 2680 return This->lpVtbl->AddRef(This); 2681 } 2682 static FORCEINLINE ULONG IWMCodecInfo_Release(IWMCodecInfo* This) { 2683 return This->lpVtbl->Release(This); 2684 } 2685 /*** IWMCodecInfo methods ***/ 2686 static FORCEINLINE HRESULT IWMCodecInfo_GetCodecInfoCount(IWMCodecInfo* This,REFGUID guid,DWORD *count) { 2687 return This->lpVtbl->GetCodecInfoCount(This,guid,count); 2688 } 2689 static FORCEINLINE HRESULT IWMCodecInfo_GetCodecFormatCount(IWMCodecInfo* This,REFGUID guid,DWORD codecindex,DWORD *formatcount) { 2690 return This->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount); 2691 } 2692 static FORCEINLINE HRESULT IWMCodecInfo_GetCodecFormat(IWMCodecInfo* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig) { 2693 return This->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig); 2694 } 2695 #endif 2696 #endif 2697 2698 #endif 2699 2700 2701 #endif /* __IWMCodecInfo_INTERFACE_DEFINED__ */ 2702 2703 /***************************************************************************** 2704 * IWMCodecInfo2 interface 2705 */ 2706 #ifndef __IWMCodecInfo2_INTERFACE_DEFINED__ 2707 #define __IWMCodecInfo2_INTERFACE_DEFINED__ 2708 2709 DEFINE_GUID(IID_IWMCodecInfo2, 0xaa65e273, 0xb686, 0x4056, 0x91,0xec, 0xdd,0x76,0x8d,0x4d,0xf7,0x10); 2710 #if defined(__cplusplus) && !defined(CINTERFACE) 2711 MIDL_INTERFACE("aa65e273-b686-4056-91ec-dd768d4df710") 2712 IWMCodecInfo2 : public IWMCodecInfo 2713 { 2714 virtual HRESULT STDMETHODCALLTYPE GetCodecName( 2715 REFGUID guid, 2716 DWORD codecindex, 2717 WCHAR *name, 2718 DWORD *namesize) = 0; 2719 2720 virtual HRESULT STDMETHODCALLTYPE GetCodecFormatDesc( 2721 REFGUID guid, 2722 DWORD codecindex, 2723 DWORD formatindex, 2724 IWMStreamConfig **streamconfig, 2725 WCHAR *description, 2726 DWORD *descrsize) = 0; 2727 2728 }; 2729 #ifdef __CRT_UUID_DECL 2730 __CRT_UUID_DECL(IWMCodecInfo2, 0xaa65e273, 0xb686, 0x4056, 0x91,0xec, 0xdd,0x76,0x8d,0x4d,0xf7,0x10) 2731 #endif 2732 #else 2733 typedef struct IWMCodecInfo2Vtbl { 2734 BEGIN_INTERFACE 2735 2736 /*** IUnknown methods ***/ 2737 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2738 IWMCodecInfo2 *This, 2739 REFIID riid, 2740 void **ppvObject); 2741 2742 ULONG (STDMETHODCALLTYPE *AddRef)( 2743 IWMCodecInfo2 *This); 2744 2745 ULONG (STDMETHODCALLTYPE *Release)( 2746 IWMCodecInfo2 *This); 2747 2748 /*** IWMCodecInfo methods ***/ 2749 HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)( 2750 IWMCodecInfo2 *This, 2751 REFGUID guid, 2752 DWORD *count); 2753 2754 HRESULT (STDMETHODCALLTYPE *GetCodecFormatCount)( 2755 IWMCodecInfo2 *This, 2756 REFGUID guid, 2757 DWORD codecindex, 2758 DWORD *formatcount); 2759 2760 HRESULT (STDMETHODCALLTYPE *GetCodecFormat)( 2761 IWMCodecInfo2 *This, 2762 REFGUID guid, 2763 DWORD codecindex, 2764 DWORD formatindex, 2765 IWMStreamConfig **streamconfig); 2766 2767 /*** IWMCodecInfo2 methods ***/ 2768 HRESULT (STDMETHODCALLTYPE *GetCodecName)( 2769 IWMCodecInfo2 *This, 2770 REFGUID guid, 2771 DWORD codecindex, 2772 WCHAR *name, 2773 DWORD *namesize); 2774 2775 HRESULT (STDMETHODCALLTYPE *GetCodecFormatDesc)( 2776 IWMCodecInfo2 *This, 2777 REFGUID guid, 2778 DWORD codecindex, 2779 DWORD formatindex, 2780 IWMStreamConfig **streamconfig, 2781 WCHAR *description, 2782 DWORD *descrsize); 2783 2784 END_INTERFACE 2785 } IWMCodecInfo2Vtbl; 2786 2787 interface IWMCodecInfo2 { 2788 CONST_VTBL IWMCodecInfo2Vtbl* lpVtbl; 2789 }; 2790 2791 #ifdef COBJMACROS 2792 #ifndef WIDL_C_INLINE_WRAPPERS 2793 /*** IUnknown methods ***/ 2794 #define IWMCodecInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2795 #define IWMCodecInfo2_AddRef(This) (This)->lpVtbl->AddRef(This) 2796 #define IWMCodecInfo2_Release(This) (This)->lpVtbl->Release(This) 2797 /*** IWMCodecInfo methods ***/ 2798 #define IWMCodecInfo2_GetCodecInfoCount(This,guid,count) (This)->lpVtbl->GetCodecInfoCount(This,guid,count) 2799 #define IWMCodecInfo2_GetCodecFormatCount(This,guid,codecindex,formatcount) (This)->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount) 2800 #define IWMCodecInfo2_GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) (This)->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) 2801 /*** IWMCodecInfo2 methods ***/ 2802 #define IWMCodecInfo2_GetCodecName(This,guid,codecindex,name,namesize) (This)->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize) 2803 #define IWMCodecInfo2_GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize) (This)->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize) 2804 #else 2805 /*** IUnknown methods ***/ 2806 static FORCEINLINE HRESULT IWMCodecInfo2_QueryInterface(IWMCodecInfo2* This,REFIID riid,void **ppvObject) { 2807 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2808 } 2809 static FORCEINLINE ULONG IWMCodecInfo2_AddRef(IWMCodecInfo2* This) { 2810 return This->lpVtbl->AddRef(This); 2811 } 2812 static FORCEINLINE ULONG IWMCodecInfo2_Release(IWMCodecInfo2* This) { 2813 return This->lpVtbl->Release(This); 2814 } 2815 /*** IWMCodecInfo methods ***/ 2816 static FORCEINLINE HRESULT IWMCodecInfo2_GetCodecInfoCount(IWMCodecInfo2* This,REFGUID guid,DWORD *count) { 2817 return This->lpVtbl->GetCodecInfoCount(This,guid,count); 2818 } 2819 static FORCEINLINE HRESULT IWMCodecInfo2_GetCodecFormatCount(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,DWORD *formatcount) { 2820 return This->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount); 2821 } 2822 static FORCEINLINE HRESULT IWMCodecInfo2_GetCodecFormat(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig) { 2823 return This->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig); 2824 } 2825 /*** IWMCodecInfo2 methods ***/ 2826 static FORCEINLINE HRESULT IWMCodecInfo2_GetCodecName(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,WCHAR *name,DWORD *namesize) { 2827 return This->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize); 2828 } 2829 static FORCEINLINE HRESULT IWMCodecInfo2_GetCodecFormatDesc(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig,WCHAR *description,DWORD *descrsize) { 2830 return This->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize); 2831 } 2832 #endif 2833 #endif 2834 2835 #endif 2836 2837 2838 #endif /* __IWMCodecInfo2_INTERFACE_DEFINED__ */ 2839 2840 /***************************************************************************** 2841 * IWMCodecInfo3 interface 2842 */ 2843 #ifndef __IWMCodecInfo3_INTERFACE_DEFINED__ 2844 #define __IWMCodecInfo3_INTERFACE_DEFINED__ 2845 2846 DEFINE_GUID(IID_IWMCodecInfo3, 0x7e51f487, 0x4d93, 0x4f98, 0x8a,0xb4, 0x27,0xd0,0x56,0x5a,0xdc,0x51); 2847 #if defined(__cplusplus) && !defined(CINTERFACE) 2848 MIDL_INTERFACE("7e51f487-4d93-4f98-8ab4-27d0565adc51") 2849 IWMCodecInfo3 : public IWMCodecInfo2 2850 { 2851 virtual HRESULT STDMETHODCALLTYPE GetCodecFormatProp( 2852 REFGUID guid, 2853 DWORD codecindex, 2854 DWORD formatindex, 2855 const WCHAR *name, 2856 WMT_ATTR_DATATYPE *type, 2857 BYTE *value, 2858 DWORD *size) = 0; 2859 2860 virtual HRESULT STDMETHODCALLTYPE GetCodecProp( 2861 REFGUID guid, 2862 DWORD codecindex, 2863 const WCHAR *name, 2864 WMT_ATTR_DATATYPE *type, 2865 BYTE *value, 2866 DWORD *size) = 0; 2867 2868 virtual HRESULT STDMETHODCALLTYPE SetCodecEnumerationSetting( 2869 REFGUID guid, 2870 DWORD codecindex, 2871 const WCHAR *name, 2872 WMT_ATTR_DATATYPE type, 2873 const BYTE *value, 2874 DWORD size) = 0; 2875 2876 virtual HRESULT STDMETHODCALLTYPE GetCodecEnumerationSetting( 2877 REFGUID guid, 2878 DWORD codecindex, 2879 const WCHAR *name, 2880 WMT_ATTR_DATATYPE *type, 2881 BYTE *value, 2882 DWORD *size) = 0; 2883 2884 }; 2885 #ifdef __CRT_UUID_DECL 2886 __CRT_UUID_DECL(IWMCodecInfo3, 0x7e51f487, 0x4d93, 0x4f98, 0x8a,0xb4, 0x27,0xd0,0x56,0x5a,0xdc,0x51) 2887 #endif 2888 #else 2889 typedef struct IWMCodecInfo3Vtbl { 2890 BEGIN_INTERFACE 2891 2892 /*** IUnknown methods ***/ 2893 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2894 IWMCodecInfo3 *This, 2895 REFIID riid, 2896 void **ppvObject); 2897 2898 ULONG (STDMETHODCALLTYPE *AddRef)( 2899 IWMCodecInfo3 *This); 2900 2901 ULONG (STDMETHODCALLTYPE *Release)( 2902 IWMCodecInfo3 *This); 2903 2904 /*** IWMCodecInfo methods ***/ 2905 HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)( 2906 IWMCodecInfo3 *This, 2907 REFGUID guid, 2908 DWORD *count); 2909 2910 HRESULT (STDMETHODCALLTYPE *GetCodecFormatCount)( 2911 IWMCodecInfo3 *This, 2912 REFGUID guid, 2913 DWORD codecindex, 2914 DWORD *formatcount); 2915 2916 HRESULT (STDMETHODCALLTYPE *GetCodecFormat)( 2917 IWMCodecInfo3 *This, 2918 REFGUID guid, 2919 DWORD codecindex, 2920 DWORD formatindex, 2921 IWMStreamConfig **streamconfig); 2922 2923 /*** IWMCodecInfo2 methods ***/ 2924 HRESULT (STDMETHODCALLTYPE *GetCodecName)( 2925 IWMCodecInfo3 *This, 2926 REFGUID guid, 2927 DWORD codecindex, 2928 WCHAR *name, 2929 DWORD *namesize); 2930 2931 HRESULT (STDMETHODCALLTYPE *GetCodecFormatDesc)( 2932 IWMCodecInfo3 *This, 2933 REFGUID guid, 2934 DWORD codecindex, 2935 DWORD formatindex, 2936 IWMStreamConfig **streamconfig, 2937 WCHAR *description, 2938 DWORD *descrsize); 2939 2940 /*** IWMCodecInfo3 methods ***/ 2941 HRESULT (STDMETHODCALLTYPE *GetCodecFormatProp)( 2942 IWMCodecInfo3 *This, 2943 REFGUID guid, 2944 DWORD codecindex, 2945 DWORD formatindex, 2946 const WCHAR *name, 2947 WMT_ATTR_DATATYPE *type, 2948 BYTE *value, 2949 DWORD *size); 2950 2951 HRESULT (STDMETHODCALLTYPE *GetCodecProp)( 2952 IWMCodecInfo3 *This, 2953 REFGUID guid, 2954 DWORD codecindex, 2955 const WCHAR *name, 2956 WMT_ATTR_DATATYPE *type, 2957 BYTE *value, 2958 DWORD *size); 2959 2960 HRESULT (STDMETHODCALLTYPE *SetCodecEnumerationSetting)( 2961 IWMCodecInfo3 *This, 2962 REFGUID guid, 2963 DWORD codecindex, 2964 const WCHAR *name, 2965 WMT_ATTR_DATATYPE type, 2966 const BYTE *value, 2967 DWORD size); 2968 2969 HRESULT (STDMETHODCALLTYPE *GetCodecEnumerationSetting)( 2970 IWMCodecInfo3 *This, 2971 REFGUID guid, 2972 DWORD codecindex, 2973 const WCHAR *name, 2974 WMT_ATTR_DATATYPE *type, 2975 BYTE *value, 2976 DWORD *size); 2977 2978 END_INTERFACE 2979 } IWMCodecInfo3Vtbl; 2980 2981 interface IWMCodecInfo3 { 2982 CONST_VTBL IWMCodecInfo3Vtbl* lpVtbl; 2983 }; 2984 2985 #ifdef COBJMACROS 2986 #ifndef WIDL_C_INLINE_WRAPPERS 2987 /*** IUnknown methods ***/ 2988 #define IWMCodecInfo3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2989 #define IWMCodecInfo3_AddRef(This) (This)->lpVtbl->AddRef(This) 2990 #define IWMCodecInfo3_Release(This) (This)->lpVtbl->Release(This) 2991 /*** IWMCodecInfo methods ***/ 2992 #define IWMCodecInfo3_GetCodecInfoCount(This,guid,count) (This)->lpVtbl->GetCodecInfoCount(This,guid,count) 2993 #define IWMCodecInfo3_GetCodecFormatCount(This,guid,codecindex,formatcount) (This)->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount) 2994 #define IWMCodecInfo3_GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) (This)->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) 2995 /*** IWMCodecInfo2 methods ***/ 2996 #define IWMCodecInfo3_GetCodecName(This,guid,codecindex,name,namesize) (This)->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize) 2997 #define IWMCodecInfo3_GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize) (This)->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize) 2998 /*** IWMCodecInfo3 methods ***/ 2999 #define IWMCodecInfo3_GetCodecFormatProp(This,guid,codecindex,formatindex,name,type,value,size) (This)->lpVtbl->GetCodecFormatProp(This,guid,codecindex,formatindex,name,type,value,size) 3000 #define IWMCodecInfo3_GetCodecProp(This,guid,codecindex,name,type,value,size) (This)->lpVtbl->GetCodecProp(This,guid,codecindex,name,type,value,size) 3001 #define IWMCodecInfo3_SetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size) (This)->lpVtbl->SetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size) 3002 #define IWMCodecInfo3_GetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size) (This)->lpVtbl->GetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size) 3003 #else 3004 /*** IUnknown methods ***/ 3005 static FORCEINLINE HRESULT IWMCodecInfo3_QueryInterface(IWMCodecInfo3* This,REFIID riid,void **ppvObject) { 3006 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3007 } 3008 static FORCEINLINE ULONG IWMCodecInfo3_AddRef(IWMCodecInfo3* This) { 3009 return This->lpVtbl->AddRef(This); 3010 } 3011 static FORCEINLINE ULONG IWMCodecInfo3_Release(IWMCodecInfo3* This) { 3012 return This->lpVtbl->Release(This); 3013 } 3014 /*** IWMCodecInfo methods ***/ 3015 static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecInfoCount(IWMCodecInfo3* This,REFGUID guid,DWORD *count) { 3016 return This->lpVtbl->GetCodecInfoCount(This,guid,count); 3017 } 3018 static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecFormatCount(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD *formatcount) { 3019 return This->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount); 3020 } 3021 static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecFormat(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig) { 3022 return This->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig); 3023 } 3024 /*** IWMCodecInfo2 methods ***/ 3025 static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecName(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,WCHAR *name,DWORD *namesize) { 3026 return This->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize); 3027 } 3028 static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecFormatDesc(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig,WCHAR *description,DWORD *descrsize) { 3029 return This->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize); 3030 } 3031 /*** IWMCodecInfo3 methods ***/ 3032 static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecFormatProp(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD formatindex,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) { 3033 return This->lpVtbl->GetCodecFormatProp(This,guid,codecindex,formatindex,name,type,value,size); 3034 } 3035 static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecProp(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) { 3036 return This->lpVtbl->GetCodecProp(This,guid,codecindex,name,type,value,size); 3037 } 3038 static FORCEINLINE HRESULT IWMCodecInfo3_SetCodecEnumerationSetting(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,DWORD size) { 3039 return This->lpVtbl->SetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size); 3040 } 3041 static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecEnumerationSetting(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) { 3042 return This->lpVtbl->GetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size); 3043 } 3044 #endif 3045 #endif 3046 3047 #endif 3048 3049 3050 #endif /* __IWMCodecInfo3_INTERFACE_DEFINED__ */ 3051 3052 static const WCHAR g_wszNumPasses[] = {'_','P','A','S','S','E','S','U','S','E','D',0}; 3053 static const WCHAR g_wszVBREnabled[] = {'_','V','B','R','E','N','A','B','L','E','D',0}; 3054 /***************************************************************************** 3055 * IWMMediaProps interface 3056 */ 3057 #ifndef __IWMMediaProps_INTERFACE_DEFINED__ 3058 #define __IWMMediaProps_INTERFACE_DEFINED__ 3059 3060 DEFINE_GUID(IID_IWMMediaProps, 0x96406bce, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 3061 #if defined(__cplusplus) && !defined(CINTERFACE) 3062 MIDL_INTERFACE("96406bce-2b2b-11d3-b36b-00c04f6108ff") 3063 IWMMediaProps : public IUnknown 3064 { 3065 virtual HRESULT STDMETHODCALLTYPE GetType( 3066 GUID *pguidType) = 0; 3067 3068 virtual HRESULT STDMETHODCALLTYPE GetMediaType( 3069 WM_MEDIA_TYPE *pType, 3070 DWORD *pcbType) = 0; 3071 3072 virtual HRESULT STDMETHODCALLTYPE SetMediaType( 3073 WM_MEDIA_TYPE *pType) = 0; 3074 3075 }; 3076 #ifdef __CRT_UUID_DECL 3077 __CRT_UUID_DECL(IWMMediaProps, 0x96406bce, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 3078 #endif 3079 #else 3080 typedef struct IWMMediaPropsVtbl { 3081 BEGIN_INTERFACE 3082 3083 /*** IUnknown methods ***/ 3084 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3085 IWMMediaProps *This, 3086 REFIID riid, 3087 void **ppvObject); 3088 3089 ULONG (STDMETHODCALLTYPE *AddRef)( 3090 IWMMediaProps *This); 3091 3092 ULONG (STDMETHODCALLTYPE *Release)( 3093 IWMMediaProps *This); 3094 3095 /*** IWMMediaProps methods ***/ 3096 HRESULT (STDMETHODCALLTYPE *GetType)( 3097 IWMMediaProps *This, 3098 GUID *pguidType); 3099 3100 HRESULT (STDMETHODCALLTYPE *GetMediaType)( 3101 IWMMediaProps *This, 3102 WM_MEDIA_TYPE *pType, 3103 DWORD *pcbType); 3104 3105 HRESULT (STDMETHODCALLTYPE *SetMediaType)( 3106 IWMMediaProps *This, 3107 WM_MEDIA_TYPE *pType); 3108 3109 END_INTERFACE 3110 } IWMMediaPropsVtbl; 3111 3112 interface IWMMediaProps { 3113 CONST_VTBL IWMMediaPropsVtbl* lpVtbl; 3114 }; 3115 3116 #ifdef COBJMACROS 3117 #ifndef WIDL_C_INLINE_WRAPPERS 3118 /*** IUnknown methods ***/ 3119 #define IWMMediaProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3120 #define IWMMediaProps_AddRef(This) (This)->lpVtbl->AddRef(This) 3121 #define IWMMediaProps_Release(This) (This)->lpVtbl->Release(This) 3122 /*** IWMMediaProps methods ***/ 3123 #define IWMMediaProps_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType) 3124 #define IWMMediaProps_GetMediaType(This,pType,pcbType) (This)->lpVtbl->GetMediaType(This,pType,pcbType) 3125 #define IWMMediaProps_SetMediaType(This,pType) (This)->lpVtbl->SetMediaType(This,pType) 3126 #else 3127 /*** IUnknown methods ***/ 3128 static FORCEINLINE HRESULT IWMMediaProps_QueryInterface(IWMMediaProps* This,REFIID riid,void **ppvObject) { 3129 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3130 } 3131 static FORCEINLINE ULONG IWMMediaProps_AddRef(IWMMediaProps* This) { 3132 return This->lpVtbl->AddRef(This); 3133 } 3134 static FORCEINLINE ULONG IWMMediaProps_Release(IWMMediaProps* This) { 3135 return This->lpVtbl->Release(This); 3136 } 3137 /*** IWMMediaProps methods ***/ 3138 static FORCEINLINE HRESULT IWMMediaProps_GetType(IWMMediaProps* This,GUID *pguidType) { 3139 return This->lpVtbl->GetType(This,pguidType); 3140 } 3141 static FORCEINLINE HRESULT IWMMediaProps_GetMediaType(IWMMediaProps* This,WM_MEDIA_TYPE *pType,DWORD *pcbType) { 3142 return This->lpVtbl->GetMediaType(This,pType,pcbType); 3143 } 3144 static FORCEINLINE HRESULT IWMMediaProps_SetMediaType(IWMMediaProps* This,WM_MEDIA_TYPE *pType) { 3145 return This->lpVtbl->SetMediaType(This,pType); 3146 } 3147 #endif 3148 #endif 3149 3150 #endif 3151 3152 3153 #endif /* __IWMMediaProps_INTERFACE_DEFINED__ */ 3154 3155 /***************************************************************************** 3156 * IWMOutputMediaProps interface 3157 */ 3158 #ifndef __IWMOutputMediaProps_INTERFACE_DEFINED__ 3159 #define __IWMOutputMediaProps_INTERFACE_DEFINED__ 3160 3161 DEFINE_GUID(IID_IWMOutputMediaProps, 0x96406bd7, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 3162 #if defined(__cplusplus) && !defined(CINTERFACE) 3163 MIDL_INTERFACE("96406bd7-2b2b-11d3-b36b-00c04f6108ff") 3164 IWMOutputMediaProps : public IWMMediaProps 3165 { 3166 virtual HRESULT STDMETHODCALLTYPE GetStreamGroupName( 3167 WCHAR *pwszName, 3168 WORD *pcchName) = 0; 3169 3170 virtual HRESULT STDMETHODCALLTYPE GetConnectionName( 3171 WCHAR *pwszName, 3172 WORD *pcchName) = 0; 3173 3174 }; 3175 #ifdef __CRT_UUID_DECL 3176 __CRT_UUID_DECL(IWMOutputMediaProps, 0x96406bd7, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 3177 #endif 3178 #else 3179 typedef struct IWMOutputMediaPropsVtbl { 3180 BEGIN_INTERFACE 3181 3182 /*** IUnknown methods ***/ 3183 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3184 IWMOutputMediaProps *This, 3185 REFIID riid, 3186 void **ppvObject); 3187 3188 ULONG (STDMETHODCALLTYPE *AddRef)( 3189 IWMOutputMediaProps *This); 3190 3191 ULONG (STDMETHODCALLTYPE *Release)( 3192 IWMOutputMediaProps *This); 3193 3194 /*** IWMMediaProps methods ***/ 3195 HRESULT (STDMETHODCALLTYPE *GetType)( 3196 IWMOutputMediaProps *This, 3197 GUID *pguidType); 3198 3199 HRESULT (STDMETHODCALLTYPE *GetMediaType)( 3200 IWMOutputMediaProps *This, 3201 WM_MEDIA_TYPE *pType, 3202 DWORD *pcbType); 3203 3204 HRESULT (STDMETHODCALLTYPE *SetMediaType)( 3205 IWMOutputMediaProps *This, 3206 WM_MEDIA_TYPE *pType); 3207 3208 /*** IWMOutputMediaProps methods ***/ 3209 HRESULT (STDMETHODCALLTYPE *GetStreamGroupName)( 3210 IWMOutputMediaProps *This, 3211 WCHAR *pwszName, 3212 WORD *pcchName); 3213 3214 HRESULT (STDMETHODCALLTYPE *GetConnectionName)( 3215 IWMOutputMediaProps *This, 3216 WCHAR *pwszName, 3217 WORD *pcchName); 3218 3219 END_INTERFACE 3220 } IWMOutputMediaPropsVtbl; 3221 3222 interface IWMOutputMediaProps { 3223 CONST_VTBL IWMOutputMediaPropsVtbl* lpVtbl; 3224 }; 3225 3226 #ifdef COBJMACROS 3227 #ifndef WIDL_C_INLINE_WRAPPERS 3228 /*** IUnknown methods ***/ 3229 #define IWMOutputMediaProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3230 #define IWMOutputMediaProps_AddRef(This) (This)->lpVtbl->AddRef(This) 3231 #define IWMOutputMediaProps_Release(This) (This)->lpVtbl->Release(This) 3232 /*** IWMMediaProps methods ***/ 3233 #define IWMOutputMediaProps_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType) 3234 #define IWMOutputMediaProps_GetMediaType(This,pType,pcbType) (This)->lpVtbl->GetMediaType(This,pType,pcbType) 3235 #define IWMOutputMediaProps_SetMediaType(This,pType) (This)->lpVtbl->SetMediaType(This,pType) 3236 /*** IWMOutputMediaProps methods ***/ 3237 #define IWMOutputMediaProps_GetStreamGroupName(This,pwszName,pcchName) (This)->lpVtbl->GetStreamGroupName(This,pwszName,pcchName) 3238 #define IWMOutputMediaProps_GetConnectionName(This,pwszName,pcchName) (This)->lpVtbl->GetConnectionName(This,pwszName,pcchName) 3239 #else 3240 /*** IUnknown methods ***/ 3241 static FORCEINLINE HRESULT IWMOutputMediaProps_QueryInterface(IWMOutputMediaProps* This,REFIID riid,void **ppvObject) { 3242 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3243 } 3244 static FORCEINLINE ULONG IWMOutputMediaProps_AddRef(IWMOutputMediaProps* This) { 3245 return This->lpVtbl->AddRef(This); 3246 } 3247 static FORCEINLINE ULONG IWMOutputMediaProps_Release(IWMOutputMediaProps* This) { 3248 return This->lpVtbl->Release(This); 3249 } 3250 /*** IWMMediaProps methods ***/ 3251 static FORCEINLINE HRESULT IWMOutputMediaProps_GetType(IWMOutputMediaProps* This,GUID *pguidType) { 3252 return This->lpVtbl->GetType(This,pguidType); 3253 } 3254 static FORCEINLINE HRESULT IWMOutputMediaProps_GetMediaType(IWMOutputMediaProps* This,WM_MEDIA_TYPE *pType,DWORD *pcbType) { 3255 return This->lpVtbl->GetMediaType(This,pType,pcbType); 3256 } 3257 static FORCEINLINE HRESULT IWMOutputMediaProps_SetMediaType(IWMOutputMediaProps* This,WM_MEDIA_TYPE *pType) { 3258 return This->lpVtbl->SetMediaType(This,pType); 3259 } 3260 /*** IWMOutputMediaProps methods ***/ 3261 static FORCEINLINE HRESULT IWMOutputMediaProps_GetStreamGroupName(IWMOutputMediaProps* This,WCHAR *pwszName,WORD *pcchName) { 3262 return This->lpVtbl->GetStreamGroupName(This,pwszName,pcchName); 3263 } 3264 static FORCEINLINE HRESULT IWMOutputMediaProps_GetConnectionName(IWMOutputMediaProps* This,WCHAR *pwszName,WORD *pcchName) { 3265 return This->lpVtbl->GetConnectionName(This,pwszName,pcchName); 3266 } 3267 #endif 3268 #endif 3269 3270 #endif 3271 3272 3273 #endif /* __IWMOutputMediaProps_INTERFACE_DEFINED__ */ 3274 3275 /***************************************************************************** 3276 * IWMMetadataEditor interface 3277 */ 3278 #ifndef __IWMMetadataEditor_INTERFACE_DEFINED__ 3279 #define __IWMMetadataEditor_INTERFACE_DEFINED__ 3280 3281 DEFINE_GUID(IID_IWMMetadataEditor, 0x96406bd9, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 3282 #if defined(__cplusplus) && !defined(CINTERFACE) 3283 MIDL_INTERFACE("96406bd9-2b2b-11d3-b36b-00c04f6108ff") 3284 IWMMetadataEditor : public IUnknown 3285 { 3286 virtual HRESULT STDMETHODCALLTYPE Open( 3287 const WCHAR *pwszFilename) = 0; 3288 3289 virtual HRESULT STDMETHODCALLTYPE Close( 3290 ) = 0; 3291 3292 virtual HRESULT STDMETHODCALLTYPE Flush( 3293 ) = 0; 3294 3295 }; 3296 #ifdef __CRT_UUID_DECL 3297 __CRT_UUID_DECL(IWMMetadataEditor, 0x96406bd9, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 3298 #endif 3299 #else 3300 typedef struct IWMMetadataEditorVtbl { 3301 BEGIN_INTERFACE 3302 3303 /*** IUnknown methods ***/ 3304 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3305 IWMMetadataEditor *This, 3306 REFIID riid, 3307 void **ppvObject); 3308 3309 ULONG (STDMETHODCALLTYPE *AddRef)( 3310 IWMMetadataEditor *This); 3311 3312 ULONG (STDMETHODCALLTYPE *Release)( 3313 IWMMetadataEditor *This); 3314 3315 /*** IWMMetadataEditor methods ***/ 3316 HRESULT (STDMETHODCALLTYPE *Open)( 3317 IWMMetadataEditor *This, 3318 const WCHAR *pwszFilename); 3319 3320 HRESULT (STDMETHODCALLTYPE *Close)( 3321 IWMMetadataEditor *This); 3322 3323 HRESULT (STDMETHODCALLTYPE *Flush)( 3324 IWMMetadataEditor *This); 3325 3326 END_INTERFACE 3327 } IWMMetadataEditorVtbl; 3328 3329 interface IWMMetadataEditor { 3330 CONST_VTBL IWMMetadataEditorVtbl* lpVtbl; 3331 }; 3332 3333 #ifdef COBJMACROS 3334 #ifndef WIDL_C_INLINE_WRAPPERS 3335 /*** IUnknown methods ***/ 3336 #define IWMMetadataEditor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3337 #define IWMMetadataEditor_AddRef(This) (This)->lpVtbl->AddRef(This) 3338 #define IWMMetadataEditor_Release(This) (This)->lpVtbl->Release(This) 3339 /*** IWMMetadataEditor methods ***/ 3340 #define IWMMetadataEditor_Open(This,pwszFilename) (This)->lpVtbl->Open(This,pwszFilename) 3341 #define IWMMetadataEditor_Close(This) (This)->lpVtbl->Close(This) 3342 #define IWMMetadataEditor_Flush(This) (This)->lpVtbl->Flush(This) 3343 #else 3344 /*** IUnknown methods ***/ 3345 static FORCEINLINE HRESULT IWMMetadataEditor_QueryInterface(IWMMetadataEditor* This,REFIID riid,void **ppvObject) { 3346 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3347 } 3348 static FORCEINLINE ULONG IWMMetadataEditor_AddRef(IWMMetadataEditor* This) { 3349 return This->lpVtbl->AddRef(This); 3350 } 3351 static FORCEINLINE ULONG IWMMetadataEditor_Release(IWMMetadataEditor* This) { 3352 return This->lpVtbl->Release(This); 3353 } 3354 /*** IWMMetadataEditor methods ***/ 3355 static FORCEINLINE HRESULT IWMMetadataEditor_Open(IWMMetadataEditor* This,const WCHAR *pwszFilename) { 3356 return This->lpVtbl->Open(This,pwszFilename); 3357 } 3358 static FORCEINLINE HRESULT IWMMetadataEditor_Close(IWMMetadataEditor* This) { 3359 return This->lpVtbl->Close(This); 3360 } 3361 static FORCEINLINE HRESULT IWMMetadataEditor_Flush(IWMMetadataEditor* This) { 3362 return This->lpVtbl->Flush(This); 3363 } 3364 #endif 3365 #endif 3366 3367 #endif 3368 3369 3370 #endif /* __IWMMetadataEditor_INTERFACE_DEFINED__ */ 3371 3372 /***************************************************************************** 3373 * IWMReader interface 3374 */ 3375 #ifndef __IWMReader_INTERFACE_DEFINED__ 3376 #define __IWMReader_INTERFACE_DEFINED__ 3377 3378 DEFINE_GUID(IID_IWMReader, 0x96406bd6, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 3379 #if defined(__cplusplus) && !defined(CINTERFACE) 3380 MIDL_INTERFACE("96406bd6-2b2b-11d3-b36b-00c04f6108ff") 3381 IWMReader : public IUnknown 3382 { 3383 virtual HRESULT STDMETHODCALLTYPE Open( 3384 const WCHAR *pwszURL, 3385 IWMReaderCallback *pCallback, 3386 void *pvContext) = 0; 3387 3388 virtual HRESULT STDMETHODCALLTYPE Close( 3389 ) = 0; 3390 3391 virtual HRESULT STDMETHODCALLTYPE GetOutputCount( 3392 DWORD *pcOutputs) = 0; 3393 3394 virtual HRESULT STDMETHODCALLTYPE GetOutputProps( 3395 DWORD dwOutputNum, 3396 IWMOutputMediaProps **ppOutput) = 0; 3397 3398 virtual HRESULT STDMETHODCALLTYPE SetOutputProps( 3399 DWORD dwOutputNum, 3400 IWMOutputMediaProps *pOutput) = 0; 3401 3402 virtual HRESULT STDMETHODCALLTYPE GetOutputFormatCount( 3403 DWORD dwOutputNumber, 3404 DWORD *pcFormats) = 0; 3405 3406 virtual HRESULT STDMETHODCALLTYPE GetOutputFormat( 3407 DWORD dwOutputNumber, 3408 DWORD dwFormatNumber, 3409 IWMOutputMediaProps **ppProps) = 0; 3410 3411 virtual HRESULT STDMETHODCALLTYPE Start( 3412 QWORD cnsStart, 3413 QWORD cnsDuration, 3414 float fRate, 3415 void *pvContext) = 0; 3416 3417 virtual HRESULT STDMETHODCALLTYPE Stop( 3418 ) = 0; 3419 3420 virtual HRESULT STDMETHODCALLTYPE Pause( 3421 ) = 0; 3422 3423 virtual HRESULT STDMETHODCALLTYPE Resume( 3424 ) = 0; 3425 3426 }; 3427 #ifdef __CRT_UUID_DECL 3428 __CRT_UUID_DECL(IWMReader, 0x96406bd6, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 3429 #endif 3430 #else 3431 typedef struct IWMReaderVtbl { 3432 BEGIN_INTERFACE 3433 3434 /*** IUnknown methods ***/ 3435 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3436 IWMReader *This, 3437 REFIID riid, 3438 void **ppvObject); 3439 3440 ULONG (STDMETHODCALLTYPE *AddRef)( 3441 IWMReader *This); 3442 3443 ULONG (STDMETHODCALLTYPE *Release)( 3444 IWMReader *This); 3445 3446 /*** IWMReader methods ***/ 3447 HRESULT (STDMETHODCALLTYPE *Open)( 3448 IWMReader *This, 3449 const WCHAR *pwszURL, 3450 IWMReaderCallback *pCallback, 3451 void *pvContext); 3452 3453 HRESULT (STDMETHODCALLTYPE *Close)( 3454 IWMReader *This); 3455 3456 HRESULT (STDMETHODCALLTYPE *GetOutputCount)( 3457 IWMReader *This, 3458 DWORD *pcOutputs); 3459 3460 HRESULT (STDMETHODCALLTYPE *GetOutputProps)( 3461 IWMReader *This, 3462 DWORD dwOutputNum, 3463 IWMOutputMediaProps **ppOutput); 3464 3465 HRESULT (STDMETHODCALLTYPE *SetOutputProps)( 3466 IWMReader *This, 3467 DWORD dwOutputNum, 3468 IWMOutputMediaProps *pOutput); 3469 3470 HRESULT (STDMETHODCALLTYPE *GetOutputFormatCount)( 3471 IWMReader *This, 3472 DWORD dwOutputNumber, 3473 DWORD *pcFormats); 3474 3475 HRESULT (STDMETHODCALLTYPE *GetOutputFormat)( 3476 IWMReader *This, 3477 DWORD dwOutputNumber, 3478 DWORD dwFormatNumber, 3479 IWMOutputMediaProps **ppProps); 3480 3481 HRESULT (STDMETHODCALLTYPE *Start)( 3482 IWMReader *This, 3483 QWORD cnsStart, 3484 QWORD cnsDuration, 3485 float fRate, 3486 void *pvContext); 3487 3488 HRESULT (STDMETHODCALLTYPE *Stop)( 3489 IWMReader *This); 3490 3491 HRESULT (STDMETHODCALLTYPE *Pause)( 3492 IWMReader *This); 3493 3494 HRESULT (STDMETHODCALLTYPE *Resume)( 3495 IWMReader *This); 3496 3497 END_INTERFACE 3498 } IWMReaderVtbl; 3499 3500 interface IWMReader { 3501 CONST_VTBL IWMReaderVtbl* lpVtbl; 3502 }; 3503 3504 #ifdef COBJMACROS 3505 #ifndef WIDL_C_INLINE_WRAPPERS 3506 /*** IUnknown methods ***/ 3507 #define IWMReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3508 #define IWMReader_AddRef(This) (This)->lpVtbl->AddRef(This) 3509 #define IWMReader_Release(This) (This)->lpVtbl->Release(This) 3510 /*** IWMReader methods ***/ 3511 #define IWMReader_Open(This,pwszURL,pCallback,pvContext) (This)->lpVtbl->Open(This,pwszURL,pCallback,pvContext) 3512 #define IWMReader_Close(This) (This)->lpVtbl->Close(This) 3513 #define IWMReader_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs) 3514 #define IWMReader_GetOutputProps(This,dwOutputNum,ppOutput) (This)->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput) 3515 #define IWMReader_SetOutputProps(This,dwOutputNum,pOutput) (This)->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput) 3516 #define IWMReader_GetOutputFormatCount(This,dwOutputNumber,pcFormats) (This)->lpVtbl->GetOutputFormatCount(This,dwOutputNumber,pcFormats) 3517 #define IWMReader_GetOutputFormat(This,dwOutputNumber,dwFormatNumber,ppProps) (This)->lpVtbl->GetOutputFormat(This,dwOutputNumber,dwFormatNumber,ppProps) 3518 #define IWMReader_Start(This,cnsStart,cnsDuration,fRate,pvContext) (This)->lpVtbl->Start(This,cnsStart,cnsDuration,fRate,pvContext) 3519 #define IWMReader_Stop(This) (This)->lpVtbl->Stop(This) 3520 #define IWMReader_Pause(This) (This)->lpVtbl->Pause(This) 3521 #define IWMReader_Resume(This) (This)->lpVtbl->Resume(This) 3522 #else 3523 /*** IUnknown methods ***/ 3524 static FORCEINLINE HRESULT IWMReader_QueryInterface(IWMReader* This,REFIID riid,void **ppvObject) { 3525 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3526 } 3527 static FORCEINLINE ULONG IWMReader_AddRef(IWMReader* This) { 3528 return This->lpVtbl->AddRef(This); 3529 } 3530 static FORCEINLINE ULONG IWMReader_Release(IWMReader* This) { 3531 return This->lpVtbl->Release(This); 3532 } 3533 /*** IWMReader methods ***/ 3534 static FORCEINLINE HRESULT IWMReader_Open(IWMReader* This,const WCHAR *pwszURL,IWMReaderCallback *pCallback,void *pvContext) { 3535 return This->lpVtbl->Open(This,pwszURL,pCallback,pvContext); 3536 } 3537 static FORCEINLINE HRESULT IWMReader_Close(IWMReader* This) { 3538 return This->lpVtbl->Close(This); 3539 } 3540 static FORCEINLINE HRESULT IWMReader_GetOutputCount(IWMReader* This,DWORD *pcOutputs) { 3541 return This->lpVtbl->GetOutputCount(This,pcOutputs); 3542 } 3543 static FORCEINLINE HRESULT IWMReader_GetOutputProps(IWMReader* This,DWORD dwOutputNum,IWMOutputMediaProps **ppOutput) { 3544 return This->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput); 3545 } 3546 static FORCEINLINE HRESULT IWMReader_SetOutputProps(IWMReader* This,DWORD dwOutputNum,IWMOutputMediaProps *pOutput) { 3547 return This->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput); 3548 } 3549 static FORCEINLINE HRESULT IWMReader_GetOutputFormatCount(IWMReader* This,DWORD dwOutputNumber,DWORD *pcFormats) { 3550 return This->lpVtbl->GetOutputFormatCount(This,dwOutputNumber,pcFormats); 3551 } 3552 static FORCEINLINE HRESULT IWMReader_GetOutputFormat(IWMReader* This,DWORD dwOutputNumber,DWORD dwFormatNumber,IWMOutputMediaProps **ppProps) { 3553 return This->lpVtbl->GetOutputFormat(This,dwOutputNumber,dwFormatNumber,ppProps); 3554 } 3555 static FORCEINLINE HRESULT IWMReader_Start(IWMReader* This,QWORD cnsStart,QWORD cnsDuration,float fRate,void *pvContext) { 3556 return This->lpVtbl->Start(This,cnsStart,cnsDuration,fRate,pvContext); 3557 } 3558 static FORCEINLINE HRESULT IWMReader_Stop(IWMReader* This) { 3559 return This->lpVtbl->Stop(This); 3560 } 3561 static FORCEINLINE HRESULT IWMReader_Pause(IWMReader* This) { 3562 return This->lpVtbl->Pause(This); 3563 } 3564 static FORCEINLINE HRESULT IWMReader_Resume(IWMReader* This) { 3565 return This->lpVtbl->Resume(This); 3566 } 3567 #endif 3568 #endif 3569 3570 #endif 3571 3572 3573 #endif /* __IWMReader_INTERFACE_DEFINED__ */ 3574 3575 /***************************************************************************** 3576 * IWMPlayerHook interface 3577 */ 3578 #ifndef __IWMPlayerHook_INTERFACE_DEFINED__ 3579 #define __IWMPlayerHook_INTERFACE_DEFINED__ 3580 3581 DEFINE_GUID(IID_IWMPlayerHook, 0xe5b7ca9a, 0x0f1c, 0x4f66, 0x90,0x02, 0x74,0xec,0x50,0xd8,0xb3,0x04); 3582 #if defined(__cplusplus) && !defined(CINTERFACE) 3583 MIDL_INTERFACE("e5b7ca9a-0f1c-4f66-9002-74ec50d8b304") 3584 IWMPlayerHook : public IUnknown 3585 { 3586 virtual HRESULT STDMETHODCALLTYPE PreDecode( 3587 ) = 0; 3588 3589 }; 3590 #ifdef __CRT_UUID_DECL 3591 __CRT_UUID_DECL(IWMPlayerHook, 0xe5b7ca9a, 0x0f1c, 0x4f66, 0x90,0x02, 0x74,0xec,0x50,0xd8,0xb3,0x04) 3592 #endif 3593 #else 3594 typedef struct IWMPlayerHookVtbl { 3595 BEGIN_INTERFACE 3596 3597 /*** IUnknown methods ***/ 3598 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3599 IWMPlayerHook *This, 3600 REFIID riid, 3601 void **ppvObject); 3602 3603 ULONG (STDMETHODCALLTYPE *AddRef)( 3604 IWMPlayerHook *This); 3605 3606 ULONG (STDMETHODCALLTYPE *Release)( 3607 IWMPlayerHook *This); 3608 3609 /*** IWMPlayerHook methods ***/ 3610 HRESULT (STDMETHODCALLTYPE *PreDecode)( 3611 IWMPlayerHook *This); 3612 3613 END_INTERFACE 3614 } IWMPlayerHookVtbl; 3615 3616 interface IWMPlayerHook { 3617 CONST_VTBL IWMPlayerHookVtbl* lpVtbl; 3618 }; 3619 3620 #ifdef COBJMACROS 3621 #ifndef WIDL_C_INLINE_WRAPPERS 3622 /*** IUnknown methods ***/ 3623 #define IWMPlayerHook_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3624 #define IWMPlayerHook_AddRef(This) (This)->lpVtbl->AddRef(This) 3625 #define IWMPlayerHook_Release(This) (This)->lpVtbl->Release(This) 3626 /*** IWMPlayerHook methods ***/ 3627 #define IWMPlayerHook_PreDecode(This) (This)->lpVtbl->PreDecode(This) 3628 #else 3629 /*** IUnknown methods ***/ 3630 static FORCEINLINE HRESULT IWMPlayerHook_QueryInterface(IWMPlayerHook* This,REFIID riid,void **ppvObject) { 3631 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3632 } 3633 static FORCEINLINE ULONG IWMPlayerHook_AddRef(IWMPlayerHook* This) { 3634 return This->lpVtbl->AddRef(This); 3635 } 3636 static FORCEINLINE ULONG IWMPlayerHook_Release(IWMPlayerHook* This) { 3637 return This->lpVtbl->Release(This); 3638 } 3639 /*** IWMPlayerHook methods ***/ 3640 static FORCEINLINE HRESULT IWMPlayerHook_PreDecode(IWMPlayerHook* This) { 3641 return This->lpVtbl->PreDecode(This); 3642 } 3643 #endif 3644 #endif 3645 3646 #endif 3647 3648 3649 #endif /* __IWMPlayerHook_INTERFACE_DEFINED__ */ 3650 3651 /***************************************************************************** 3652 * IWMReaderAdvanced interface 3653 */ 3654 #ifndef __IWMReaderAdvanced_INTERFACE_DEFINED__ 3655 #define __IWMReaderAdvanced_INTERFACE_DEFINED__ 3656 3657 DEFINE_GUID(IID_IWMReaderAdvanced, 0x96406bea, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 3658 #if defined(__cplusplus) && !defined(CINTERFACE) 3659 MIDL_INTERFACE("96406bea-2b2b-11d3-b36b-00c04f6108ff") 3660 IWMReaderAdvanced : public IUnknown 3661 { 3662 virtual HRESULT STDMETHODCALLTYPE SetUserProvidedClock( 3663 WINBOOL fUserClock) = 0; 3664 3665 virtual HRESULT STDMETHODCALLTYPE GetUserProvidedClock( 3666 WINBOOL *pfUserClock) = 0; 3667 3668 virtual HRESULT STDMETHODCALLTYPE DeliverTime( 3669 QWORD cnsTime) = 0; 3670 3671 virtual HRESULT STDMETHODCALLTYPE SetManualStreamSelection( 3672 WINBOOL fSelection) = 0; 3673 3674 virtual HRESULT STDMETHODCALLTYPE GetManualStreamSelection( 3675 WINBOOL *pfSelection) = 0; 3676 3677 virtual HRESULT STDMETHODCALLTYPE SetStreamsSelected( 3678 WORD cStreamCount, 3679 WORD *pwStreamNumbers, 3680 WMT_STREAM_SELECTION *pSelections) = 0; 3681 3682 virtual HRESULT STDMETHODCALLTYPE GetStreamSelected( 3683 WORD wStreamNum, 3684 WMT_STREAM_SELECTION *pSelection) = 0; 3685 3686 virtual HRESULT STDMETHODCALLTYPE SetReceiveSelectionCallbacks( 3687 WINBOOL fGetCallbacks) = 0; 3688 3689 virtual HRESULT STDMETHODCALLTYPE GetReceiveSelectionCallbacks( 3690 WINBOOL *pfGetCallbacks) = 0; 3691 3692 virtual HRESULT STDMETHODCALLTYPE SetReceiveStreamSamples( 3693 WORD wStreamNum, 3694 WINBOOL fReceiveStreamSamples) = 0; 3695 3696 virtual HRESULT STDMETHODCALLTYPE GetReceiveStreamSamples( 3697 WORD wStreamNum, 3698 WINBOOL *pfReceiveStreamSamples) = 0; 3699 3700 virtual HRESULT STDMETHODCALLTYPE SetAllocateForOutput( 3701 DWORD dwOutputNum, 3702 WINBOOL fAllocate) = 0; 3703 3704 virtual HRESULT STDMETHODCALLTYPE GetAllocateForOutput( 3705 DWORD dwOutputNum, 3706 WINBOOL *pfAllocate) = 0; 3707 3708 virtual HRESULT STDMETHODCALLTYPE SetAllocateForStream( 3709 WORD wStreamNum, 3710 WINBOOL fAllocate) = 0; 3711 3712 virtual HRESULT STDMETHODCALLTYPE GetAllocateForStream( 3713 WORD dwStreamNum, 3714 WINBOOL *pfAllocate) = 0; 3715 3716 virtual HRESULT STDMETHODCALLTYPE GetStatistics( 3717 WM_READER_STATISTICS *pStatistics) = 0; 3718 3719 virtual HRESULT STDMETHODCALLTYPE SetClientInfo( 3720 WM_READER_CLIENTINFO *pClientInfo) = 0; 3721 3722 virtual HRESULT STDMETHODCALLTYPE GetMaxOutputSampleSize( 3723 DWORD dwOutput, 3724 DWORD *pcbMax) = 0; 3725 3726 virtual HRESULT STDMETHODCALLTYPE GetMaxStreamSampleSize( 3727 WORD wStream, 3728 DWORD *pcbMax) = 0; 3729 3730 virtual HRESULT STDMETHODCALLTYPE NotifyLateDelivery( 3731 QWORD cnsLateness) = 0; 3732 3733 }; 3734 #ifdef __CRT_UUID_DECL 3735 __CRT_UUID_DECL(IWMReaderAdvanced, 0x96406bea, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 3736 #endif 3737 #else 3738 typedef struct IWMReaderAdvancedVtbl { 3739 BEGIN_INTERFACE 3740 3741 /*** IUnknown methods ***/ 3742 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 3743 IWMReaderAdvanced *This, 3744 REFIID riid, 3745 void **ppvObject); 3746 3747 ULONG (STDMETHODCALLTYPE *AddRef)( 3748 IWMReaderAdvanced *This); 3749 3750 ULONG (STDMETHODCALLTYPE *Release)( 3751 IWMReaderAdvanced *This); 3752 3753 /*** IWMReaderAdvanced methods ***/ 3754 HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)( 3755 IWMReaderAdvanced *This, 3756 WINBOOL fUserClock); 3757 3758 HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)( 3759 IWMReaderAdvanced *This, 3760 WINBOOL *pfUserClock); 3761 3762 HRESULT (STDMETHODCALLTYPE *DeliverTime)( 3763 IWMReaderAdvanced *This, 3764 QWORD cnsTime); 3765 3766 HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)( 3767 IWMReaderAdvanced *This, 3768 WINBOOL fSelection); 3769 3770 HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)( 3771 IWMReaderAdvanced *This, 3772 WINBOOL *pfSelection); 3773 3774 HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)( 3775 IWMReaderAdvanced *This, 3776 WORD cStreamCount, 3777 WORD *pwStreamNumbers, 3778 WMT_STREAM_SELECTION *pSelections); 3779 3780 HRESULT (STDMETHODCALLTYPE *GetStreamSelected)( 3781 IWMReaderAdvanced *This, 3782 WORD wStreamNum, 3783 WMT_STREAM_SELECTION *pSelection); 3784 3785 HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)( 3786 IWMReaderAdvanced *This, 3787 WINBOOL fGetCallbacks); 3788 3789 HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)( 3790 IWMReaderAdvanced *This, 3791 WINBOOL *pfGetCallbacks); 3792 3793 HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)( 3794 IWMReaderAdvanced *This, 3795 WORD wStreamNum, 3796 WINBOOL fReceiveStreamSamples); 3797 3798 HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)( 3799 IWMReaderAdvanced *This, 3800 WORD wStreamNum, 3801 WINBOOL *pfReceiveStreamSamples); 3802 3803 HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)( 3804 IWMReaderAdvanced *This, 3805 DWORD dwOutputNum, 3806 WINBOOL fAllocate); 3807 3808 HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)( 3809 IWMReaderAdvanced *This, 3810 DWORD dwOutputNum, 3811 WINBOOL *pfAllocate); 3812 3813 HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)( 3814 IWMReaderAdvanced *This, 3815 WORD wStreamNum, 3816 WINBOOL fAllocate); 3817 3818 HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)( 3819 IWMReaderAdvanced *This, 3820 WORD dwStreamNum, 3821 WINBOOL *pfAllocate); 3822 3823 HRESULT (STDMETHODCALLTYPE *GetStatistics)( 3824 IWMReaderAdvanced *This, 3825 WM_READER_STATISTICS *pStatistics); 3826 3827 HRESULT (STDMETHODCALLTYPE *SetClientInfo)( 3828 IWMReaderAdvanced *This, 3829 WM_READER_CLIENTINFO *pClientInfo); 3830 3831 HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)( 3832 IWMReaderAdvanced *This, 3833 DWORD dwOutput, 3834 DWORD *pcbMax); 3835 3836 HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)( 3837 IWMReaderAdvanced *This, 3838 WORD wStream, 3839 DWORD *pcbMax); 3840 3841 HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)( 3842 IWMReaderAdvanced *This, 3843 QWORD cnsLateness); 3844 3845 END_INTERFACE 3846 } IWMReaderAdvancedVtbl; 3847 3848 interface IWMReaderAdvanced { 3849 CONST_VTBL IWMReaderAdvancedVtbl* lpVtbl; 3850 }; 3851 3852 #ifdef COBJMACROS 3853 #ifndef WIDL_C_INLINE_WRAPPERS 3854 /*** IUnknown methods ***/ 3855 #define IWMReaderAdvanced_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 3856 #define IWMReaderAdvanced_AddRef(This) (This)->lpVtbl->AddRef(This) 3857 #define IWMReaderAdvanced_Release(This) (This)->lpVtbl->Release(This) 3858 /*** IWMReaderAdvanced methods ***/ 3859 #define IWMReaderAdvanced_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock) 3860 #define IWMReaderAdvanced_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock) 3861 #define IWMReaderAdvanced_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime) 3862 #define IWMReaderAdvanced_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection) 3863 #define IWMReaderAdvanced_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection) 3864 #define IWMReaderAdvanced_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) 3865 #define IWMReaderAdvanced_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection) 3866 #define IWMReaderAdvanced_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks) 3867 #define IWMReaderAdvanced_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks) 3868 #define IWMReaderAdvanced_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) 3869 #define IWMReaderAdvanced_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) 3870 #define IWMReaderAdvanced_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate) 3871 #define IWMReaderAdvanced_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate) 3872 #define IWMReaderAdvanced_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate) 3873 #define IWMReaderAdvanced_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate) 3874 #define IWMReaderAdvanced_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics) 3875 #define IWMReaderAdvanced_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo) 3876 #define IWMReaderAdvanced_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax) 3877 #define IWMReaderAdvanced_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax) 3878 #define IWMReaderAdvanced_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness) 3879 #else 3880 /*** IUnknown methods ***/ 3881 static FORCEINLINE HRESULT IWMReaderAdvanced_QueryInterface(IWMReaderAdvanced* This,REFIID riid,void **ppvObject) { 3882 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 3883 } 3884 static FORCEINLINE ULONG IWMReaderAdvanced_AddRef(IWMReaderAdvanced* This) { 3885 return This->lpVtbl->AddRef(This); 3886 } 3887 static FORCEINLINE ULONG IWMReaderAdvanced_Release(IWMReaderAdvanced* This) { 3888 return This->lpVtbl->Release(This); 3889 } 3890 /*** IWMReaderAdvanced methods ***/ 3891 static FORCEINLINE HRESULT IWMReaderAdvanced_SetUserProvidedClock(IWMReaderAdvanced* This,WINBOOL fUserClock) { 3892 return This->lpVtbl->SetUserProvidedClock(This,fUserClock); 3893 } 3894 static FORCEINLINE HRESULT IWMReaderAdvanced_GetUserProvidedClock(IWMReaderAdvanced* This,WINBOOL *pfUserClock) { 3895 return This->lpVtbl->GetUserProvidedClock(This,pfUserClock); 3896 } 3897 static FORCEINLINE HRESULT IWMReaderAdvanced_DeliverTime(IWMReaderAdvanced* This,QWORD cnsTime) { 3898 return This->lpVtbl->DeliverTime(This,cnsTime); 3899 } 3900 static FORCEINLINE HRESULT IWMReaderAdvanced_SetManualStreamSelection(IWMReaderAdvanced* This,WINBOOL fSelection) { 3901 return This->lpVtbl->SetManualStreamSelection(This,fSelection); 3902 } 3903 static FORCEINLINE HRESULT IWMReaderAdvanced_GetManualStreamSelection(IWMReaderAdvanced* This,WINBOOL *pfSelection) { 3904 return This->lpVtbl->GetManualStreamSelection(This,pfSelection); 3905 } 3906 static FORCEINLINE HRESULT IWMReaderAdvanced_SetStreamsSelected(IWMReaderAdvanced* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) { 3907 return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections); 3908 } 3909 static FORCEINLINE HRESULT IWMReaderAdvanced_GetStreamSelected(IWMReaderAdvanced* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) { 3910 return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection); 3911 } 3912 static FORCEINLINE HRESULT IWMReaderAdvanced_SetReceiveSelectionCallbacks(IWMReaderAdvanced* This,WINBOOL fGetCallbacks) { 3913 return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks); 3914 } 3915 static FORCEINLINE HRESULT IWMReaderAdvanced_GetReceiveSelectionCallbacks(IWMReaderAdvanced* This,WINBOOL *pfGetCallbacks) { 3916 return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks); 3917 } 3918 static FORCEINLINE HRESULT IWMReaderAdvanced_SetReceiveStreamSamples(IWMReaderAdvanced* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) { 3919 return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples); 3920 } 3921 static FORCEINLINE HRESULT IWMReaderAdvanced_GetReceiveStreamSamples(IWMReaderAdvanced* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) { 3922 return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples); 3923 } 3924 static FORCEINLINE HRESULT IWMReaderAdvanced_SetAllocateForOutput(IWMReaderAdvanced* This,DWORD dwOutputNum,WINBOOL fAllocate) { 3925 return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate); 3926 } 3927 static FORCEINLINE HRESULT IWMReaderAdvanced_GetAllocateForOutput(IWMReaderAdvanced* This,DWORD dwOutputNum,WINBOOL *pfAllocate) { 3928 return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate); 3929 } 3930 static FORCEINLINE HRESULT IWMReaderAdvanced_SetAllocateForStream(IWMReaderAdvanced* This,WORD wStreamNum,WINBOOL fAllocate) { 3931 return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate); 3932 } 3933 static FORCEINLINE HRESULT IWMReaderAdvanced_GetAllocateForStream(IWMReaderAdvanced* This,WORD dwStreamNum,WINBOOL *pfAllocate) { 3934 return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate); 3935 } 3936 static FORCEINLINE HRESULT IWMReaderAdvanced_GetStatistics(IWMReaderAdvanced* This,WM_READER_STATISTICS *pStatistics) { 3937 return This->lpVtbl->GetStatistics(This,pStatistics); 3938 } 3939 static FORCEINLINE HRESULT IWMReaderAdvanced_SetClientInfo(IWMReaderAdvanced* This,WM_READER_CLIENTINFO *pClientInfo) { 3940 return This->lpVtbl->SetClientInfo(This,pClientInfo); 3941 } 3942 static FORCEINLINE HRESULT IWMReaderAdvanced_GetMaxOutputSampleSize(IWMReaderAdvanced* This,DWORD dwOutput,DWORD *pcbMax) { 3943 return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax); 3944 } 3945 static FORCEINLINE HRESULT IWMReaderAdvanced_GetMaxStreamSampleSize(IWMReaderAdvanced* This,WORD wStream,DWORD *pcbMax) { 3946 return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax); 3947 } 3948 static FORCEINLINE HRESULT IWMReaderAdvanced_NotifyLateDelivery(IWMReaderAdvanced* This,QWORD cnsLateness) { 3949 return This->lpVtbl->NotifyLateDelivery(This,cnsLateness); 3950 } 3951 #endif 3952 #endif 3953 3954 #endif 3955 3956 3957 #endif /* __IWMReaderAdvanced_INTERFACE_DEFINED__ */ 3958 3959 /***************************************************************************** 3960 * IWMReaderAdvanced2 interface 3961 */ 3962 #ifndef __IWMReaderAdvanced2_INTERFACE_DEFINED__ 3963 #define __IWMReaderAdvanced2_INTERFACE_DEFINED__ 3964 3965 DEFINE_GUID(IID_IWMReaderAdvanced2, 0xae14a945, 0xb90c, 0x4d0d, 0x91,0x27, 0x80,0xd6,0x65,0xf7,0xd7,0x3e); 3966 #if defined(__cplusplus) && !defined(CINTERFACE) 3967 MIDL_INTERFACE("ae14a945-b90c-4d0d-9127-80d665f7d73e") 3968 IWMReaderAdvanced2 : public IWMReaderAdvanced 3969 { 3970 virtual HRESULT STDMETHODCALLTYPE SetPlayMode( 3971 WMT_PLAY_MODE Mode) = 0; 3972 3973 virtual HRESULT STDMETHODCALLTYPE GetPlayMode( 3974 WMT_PLAY_MODE *pMode) = 0; 3975 3976 virtual HRESULT STDMETHODCALLTYPE GetBufferProgress( 3977 DWORD *pdwPercent, 3978 QWORD *pcnsBuffering) = 0; 3979 3980 virtual HRESULT STDMETHODCALLTYPE GetDownloadProgress( 3981 DWORD *pdwPercent, 3982 QWORD *pqwBytesDownloaded, 3983 QWORD *pcnsDownload) = 0; 3984 3985 virtual HRESULT STDMETHODCALLTYPE GetSaveAsProgress( 3986 DWORD *pdwPercent) = 0; 3987 3988 virtual HRESULT STDMETHODCALLTYPE SaveFileAs( 3989 const WCHAR *pwszFilename) = 0; 3990 3991 virtual HRESULT STDMETHODCALLTYPE GetProtocolName( 3992 WCHAR *pwszProtocol, 3993 DWORD *pcchProtocol) = 0; 3994 3995 virtual HRESULT STDMETHODCALLTYPE StartAtMarker( 3996 WORD wMarkerIndex, 3997 QWORD cnsDuration, 3998 float fRate, 3999 void *pvContext) = 0; 4000 4001 virtual HRESULT STDMETHODCALLTYPE GetOutputSetting( 4002 DWORD dwOutputNum, 4003 LPCWSTR pszName, 4004 WMT_ATTR_DATATYPE *pType, 4005 BYTE *pValue, 4006 WORD *pcbLength) = 0; 4007 4008 virtual HRESULT STDMETHODCALLTYPE SetOutputSetting( 4009 DWORD dwOutputNum, 4010 LPCWSTR pszName, 4011 WMT_ATTR_DATATYPE Type, 4012 const BYTE *pValue, 4013 WORD cbLength) = 0; 4014 4015 virtual HRESULT STDMETHODCALLTYPE Preroll( 4016 QWORD cnsStart, 4017 QWORD cnsDuration, 4018 float fRate) = 0; 4019 4020 virtual HRESULT STDMETHODCALLTYPE SetLogClientID( 4021 WINBOOL fLogClientID) = 0; 4022 4023 virtual HRESULT STDMETHODCALLTYPE GetLogClientID( 4024 WINBOOL *pfLogClientID) = 0; 4025 4026 virtual HRESULT STDMETHODCALLTYPE StopBuffering( 4027 ) = 0; 4028 4029 virtual HRESULT STDMETHODCALLTYPE OpenStream( 4030 IStream *pStream, 4031 IWMReaderCallback *pCallback, 4032 void *pvContext) = 0; 4033 4034 }; 4035 #ifdef __CRT_UUID_DECL 4036 __CRT_UUID_DECL(IWMReaderAdvanced2, 0xae14a945, 0xb90c, 0x4d0d, 0x91,0x27, 0x80,0xd6,0x65,0xf7,0xd7,0x3e) 4037 #endif 4038 #else 4039 typedef struct IWMReaderAdvanced2Vtbl { 4040 BEGIN_INTERFACE 4041 4042 /*** IUnknown methods ***/ 4043 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 4044 IWMReaderAdvanced2 *This, 4045 REFIID riid, 4046 void **ppvObject); 4047 4048 ULONG (STDMETHODCALLTYPE *AddRef)( 4049 IWMReaderAdvanced2 *This); 4050 4051 ULONG (STDMETHODCALLTYPE *Release)( 4052 IWMReaderAdvanced2 *This); 4053 4054 /*** IWMReaderAdvanced methods ***/ 4055 HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)( 4056 IWMReaderAdvanced2 *This, 4057 WINBOOL fUserClock); 4058 4059 HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)( 4060 IWMReaderAdvanced2 *This, 4061 WINBOOL *pfUserClock); 4062 4063 HRESULT (STDMETHODCALLTYPE *DeliverTime)( 4064 IWMReaderAdvanced2 *This, 4065 QWORD cnsTime); 4066 4067 HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)( 4068 IWMReaderAdvanced2 *This, 4069 WINBOOL fSelection); 4070 4071 HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)( 4072 IWMReaderAdvanced2 *This, 4073 WINBOOL *pfSelection); 4074 4075 HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)( 4076 IWMReaderAdvanced2 *This, 4077 WORD cStreamCount, 4078 WORD *pwStreamNumbers, 4079 WMT_STREAM_SELECTION *pSelections); 4080 4081 HRESULT (STDMETHODCALLTYPE *GetStreamSelected)( 4082 IWMReaderAdvanced2 *This, 4083 WORD wStreamNum, 4084 WMT_STREAM_SELECTION *pSelection); 4085 4086 HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)( 4087 IWMReaderAdvanced2 *This, 4088 WINBOOL fGetCallbacks); 4089 4090 HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)( 4091 IWMReaderAdvanced2 *This, 4092 WINBOOL *pfGetCallbacks); 4093 4094 HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)( 4095 IWMReaderAdvanced2 *This, 4096 WORD wStreamNum, 4097 WINBOOL fReceiveStreamSamples); 4098 4099 HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)( 4100 IWMReaderAdvanced2 *This, 4101 WORD wStreamNum, 4102 WINBOOL *pfReceiveStreamSamples); 4103 4104 HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)( 4105 IWMReaderAdvanced2 *This, 4106 DWORD dwOutputNum, 4107 WINBOOL fAllocate); 4108 4109 HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)( 4110 IWMReaderAdvanced2 *This, 4111 DWORD dwOutputNum, 4112 WINBOOL *pfAllocate); 4113 4114 HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)( 4115 IWMReaderAdvanced2 *This, 4116 WORD wStreamNum, 4117 WINBOOL fAllocate); 4118 4119 HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)( 4120 IWMReaderAdvanced2 *This, 4121 WORD dwStreamNum, 4122 WINBOOL *pfAllocate); 4123 4124 HRESULT (STDMETHODCALLTYPE *GetStatistics)( 4125 IWMReaderAdvanced2 *This, 4126 WM_READER_STATISTICS *pStatistics); 4127 4128 HRESULT (STDMETHODCALLTYPE *SetClientInfo)( 4129 IWMReaderAdvanced2 *This, 4130 WM_READER_CLIENTINFO *pClientInfo); 4131 4132 HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)( 4133 IWMReaderAdvanced2 *This, 4134 DWORD dwOutput, 4135 DWORD *pcbMax); 4136 4137 HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)( 4138 IWMReaderAdvanced2 *This, 4139 WORD wStream, 4140 DWORD *pcbMax); 4141 4142 HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)( 4143 IWMReaderAdvanced2 *This, 4144 QWORD cnsLateness); 4145 4146 /*** IWMReaderAdvanced2 methods ***/ 4147 HRESULT (STDMETHODCALLTYPE *SetPlayMode)( 4148 IWMReaderAdvanced2 *This, 4149 WMT_PLAY_MODE Mode); 4150 4151 HRESULT (STDMETHODCALLTYPE *GetPlayMode)( 4152 IWMReaderAdvanced2 *This, 4153 WMT_PLAY_MODE *pMode); 4154 4155 HRESULT (STDMETHODCALLTYPE *GetBufferProgress)( 4156 IWMReaderAdvanced2 *This, 4157 DWORD *pdwPercent, 4158 QWORD *pcnsBuffering); 4159 4160 HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)( 4161 IWMReaderAdvanced2 *This, 4162 DWORD *pdwPercent, 4163 QWORD *pqwBytesDownloaded, 4164 QWORD *pcnsDownload); 4165 4166 HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)( 4167 IWMReaderAdvanced2 *This, 4168 DWORD *pdwPercent); 4169 4170 HRESULT (STDMETHODCALLTYPE *SaveFileAs)( 4171 IWMReaderAdvanced2 *This, 4172 const WCHAR *pwszFilename); 4173 4174 HRESULT (STDMETHODCALLTYPE *GetProtocolName)( 4175 IWMReaderAdvanced2 *This, 4176 WCHAR *pwszProtocol, 4177 DWORD *pcchProtocol); 4178 4179 HRESULT (STDMETHODCALLTYPE *StartAtMarker)( 4180 IWMReaderAdvanced2 *This, 4181 WORD wMarkerIndex, 4182 QWORD cnsDuration, 4183 float fRate, 4184 void *pvContext); 4185 4186 HRESULT (STDMETHODCALLTYPE *GetOutputSetting)( 4187 IWMReaderAdvanced2 *This, 4188 DWORD dwOutputNum, 4189 LPCWSTR pszName, 4190 WMT_ATTR_DATATYPE *pType, 4191 BYTE *pValue, 4192 WORD *pcbLength); 4193 4194 HRESULT (STDMETHODCALLTYPE *SetOutputSetting)( 4195 IWMReaderAdvanced2 *This, 4196 DWORD dwOutputNum, 4197 LPCWSTR pszName, 4198 WMT_ATTR_DATATYPE Type, 4199 const BYTE *pValue, 4200 WORD cbLength); 4201 4202 HRESULT (STDMETHODCALLTYPE *Preroll)( 4203 IWMReaderAdvanced2 *This, 4204 QWORD cnsStart, 4205 QWORD cnsDuration, 4206 float fRate); 4207 4208 HRESULT (STDMETHODCALLTYPE *SetLogClientID)( 4209 IWMReaderAdvanced2 *This, 4210 WINBOOL fLogClientID); 4211 4212 HRESULT (STDMETHODCALLTYPE *GetLogClientID)( 4213 IWMReaderAdvanced2 *This, 4214 WINBOOL *pfLogClientID); 4215 4216 HRESULT (STDMETHODCALLTYPE *StopBuffering)( 4217 IWMReaderAdvanced2 *This); 4218 4219 HRESULT (STDMETHODCALLTYPE *OpenStream)( 4220 IWMReaderAdvanced2 *This, 4221 IStream *pStream, 4222 IWMReaderCallback *pCallback, 4223 void *pvContext); 4224 4225 END_INTERFACE 4226 } IWMReaderAdvanced2Vtbl; 4227 4228 interface IWMReaderAdvanced2 { 4229 CONST_VTBL IWMReaderAdvanced2Vtbl* lpVtbl; 4230 }; 4231 4232 #ifdef COBJMACROS 4233 #ifndef WIDL_C_INLINE_WRAPPERS 4234 /*** IUnknown methods ***/ 4235 #define IWMReaderAdvanced2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 4236 #define IWMReaderAdvanced2_AddRef(This) (This)->lpVtbl->AddRef(This) 4237 #define IWMReaderAdvanced2_Release(This) (This)->lpVtbl->Release(This) 4238 /*** IWMReaderAdvanced methods ***/ 4239 #define IWMReaderAdvanced2_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock) 4240 #define IWMReaderAdvanced2_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock) 4241 #define IWMReaderAdvanced2_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime) 4242 #define IWMReaderAdvanced2_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection) 4243 #define IWMReaderAdvanced2_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection) 4244 #define IWMReaderAdvanced2_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) 4245 #define IWMReaderAdvanced2_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection) 4246 #define IWMReaderAdvanced2_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks) 4247 #define IWMReaderAdvanced2_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks) 4248 #define IWMReaderAdvanced2_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) 4249 #define IWMReaderAdvanced2_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) 4250 #define IWMReaderAdvanced2_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate) 4251 #define IWMReaderAdvanced2_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate) 4252 #define IWMReaderAdvanced2_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate) 4253 #define IWMReaderAdvanced2_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate) 4254 #define IWMReaderAdvanced2_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics) 4255 #define IWMReaderAdvanced2_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo) 4256 #define IWMReaderAdvanced2_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax) 4257 #define IWMReaderAdvanced2_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax) 4258 #define IWMReaderAdvanced2_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness) 4259 /*** IWMReaderAdvanced2 methods ***/ 4260 #define IWMReaderAdvanced2_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode) 4261 #define IWMReaderAdvanced2_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode) 4262 #define IWMReaderAdvanced2_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering) 4263 #define IWMReaderAdvanced2_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) 4264 #define IWMReaderAdvanced2_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent) 4265 #define IWMReaderAdvanced2_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename) 4266 #define IWMReaderAdvanced2_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol) 4267 #define IWMReaderAdvanced2_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) 4268 #define IWMReaderAdvanced2_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) 4269 #define IWMReaderAdvanced2_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) 4270 #define IWMReaderAdvanced2_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate) 4271 #define IWMReaderAdvanced2_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID) 4272 #define IWMReaderAdvanced2_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID) 4273 #define IWMReaderAdvanced2_StopBuffering(This) (This)->lpVtbl->StopBuffering(This) 4274 #define IWMReaderAdvanced2_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext) 4275 #else 4276 /*** IUnknown methods ***/ 4277 static FORCEINLINE HRESULT IWMReaderAdvanced2_QueryInterface(IWMReaderAdvanced2* This,REFIID riid,void **ppvObject) { 4278 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4279 } 4280 static FORCEINLINE ULONG IWMReaderAdvanced2_AddRef(IWMReaderAdvanced2* This) { 4281 return This->lpVtbl->AddRef(This); 4282 } 4283 static FORCEINLINE ULONG IWMReaderAdvanced2_Release(IWMReaderAdvanced2* This) { 4284 return This->lpVtbl->Release(This); 4285 } 4286 /*** IWMReaderAdvanced methods ***/ 4287 static FORCEINLINE HRESULT IWMReaderAdvanced2_SetUserProvidedClock(IWMReaderAdvanced2* This,WINBOOL fUserClock) { 4288 return This->lpVtbl->SetUserProvidedClock(This,fUserClock); 4289 } 4290 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetUserProvidedClock(IWMReaderAdvanced2* This,WINBOOL *pfUserClock) { 4291 return This->lpVtbl->GetUserProvidedClock(This,pfUserClock); 4292 } 4293 static FORCEINLINE HRESULT IWMReaderAdvanced2_DeliverTime(IWMReaderAdvanced2* This,QWORD cnsTime) { 4294 return This->lpVtbl->DeliverTime(This,cnsTime); 4295 } 4296 static FORCEINLINE HRESULT IWMReaderAdvanced2_SetManualStreamSelection(IWMReaderAdvanced2* This,WINBOOL fSelection) { 4297 return This->lpVtbl->SetManualStreamSelection(This,fSelection); 4298 } 4299 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetManualStreamSelection(IWMReaderAdvanced2* This,WINBOOL *pfSelection) { 4300 return This->lpVtbl->GetManualStreamSelection(This,pfSelection); 4301 } 4302 static FORCEINLINE HRESULT IWMReaderAdvanced2_SetStreamsSelected(IWMReaderAdvanced2* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) { 4303 return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections); 4304 } 4305 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetStreamSelected(IWMReaderAdvanced2* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) { 4306 return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection); 4307 } 4308 static FORCEINLINE HRESULT IWMReaderAdvanced2_SetReceiveSelectionCallbacks(IWMReaderAdvanced2* This,WINBOOL fGetCallbacks) { 4309 return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks); 4310 } 4311 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetReceiveSelectionCallbacks(IWMReaderAdvanced2* This,WINBOOL *pfGetCallbacks) { 4312 return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks); 4313 } 4314 static FORCEINLINE HRESULT IWMReaderAdvanced2_SetReceiveStreamSamples(IWMReaderAdvanced2* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) { 4315 return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples); 4316 } 4317 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetReceiveStreamSamples(IWMReaderAdvanced2* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) { 4318 return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples); 4319 } 4320 static FORCEINLINE HRESULT IWMReaderAdvanced2_SetAllocateForOutput(IWMReaderAdvanced2* This,DWORD dwOutputNum,WINBOOL fAllocate) { 4321 return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate); 4322 } 4323 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetAllocateForOutput(IWMReaderAdvanced2* This,DWORD dwOutputNum,WINBOOL *pfAllocate) { 4324 return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate); 4325 } 4326 static FORCEINLINE HRESULT IWMReaderAdvanced2_SetAllocateForStream(IWMReaderAdvanced2* This,WORD wStreamNum,WINBOOL fAllocate) { 4327 return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate); 4328 } 4329 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetAllocateForStream(IWMReaderAdvanced2* This,WORD dwStreamNum,WINBOOL *pfAllocate) { 4330 return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate); 4331 } 4332 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetStatistics(IWMReaderAdvanced2* This,WM_READER_STATISTICS *pStatistics) { 4333 return This->lpVtbl->GetStatistics(This,pStatistics); 4334 } 4335 static FORCEINLINE HRESULT IWMReaderAdvanced2_SetClientInfo(IWMReaderAdvanced2* This,WM_READER_CLIENTINFO *pClientInfo) { 4336 return This->lpVtbl->SetClientInfo(This,pClientInfo); 4337 } 4338 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetMaxOutputSampleSize(IWMReaderAdvanced2* This,DWORD dwOutput,DWORD *pcbMax) { 4339 return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax); 4340 } 4341 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetMaxStreamSampleSize(IWMReaderAdvanced2* This,WORD wStream,DWORD *pcbMax) { 4342 return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax); 4343 } 4344 static FORCEINLINE HRESULT IWMReaderAdvanced2_NotifyLateDelivery(IWMReaderAdvanced2* This,QWORD cnsLateness) { 4345 return This->lpVtbl->NotifyLateDelivery(This,cnsLateness); 4346 } 4347 /*** IWMReaderAdvanced2 methods ***/ 4348 static FORCEINLINE HRESULT IWMReaderAdvanced2_SetPlayMode(IWMReaderAdvanced2* This,WMT_PLAY_MODE Mode) { 4349 return This->lpVtbl->SetPlayMode(This,Mode); 4350 } 4351 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetPlayMode(IWMReaderAdvanced2* This,WMT_PLAY_MODE *pMode) { 4352 return This->lpVtbl->GetPlayMode(This,pMode); 4353 } 4354 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetBufferProgress(IWMReaderAdvanced2* This,DWORD *pdwPercent,QWORD *pcnsBuffering) { 4355 return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering); 4356 } 4357 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetDownloadProgress(IWMReaderAdvanced2* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) { 4358 return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload); 4359 } 4360 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetSaveAsProgress(IWMReaderAdvanced2* This,DWORD *pdwPercent) { 4361 return This->lpVtbl->GetSaveAsProgress(This,pdwPercent); 4362 } 4363 static FORCEINLINE HRESULT IWMReaderAdvanced2_SaveFileAs(IWMReaderAdvanced2* This,const WCHAR *pwszFilename) { 4364 return This->lpVtbl->SaveFileAs(This,pwszFilename); 4365 } 4366 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetProtocolName(IWMReaderAdvanced2* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) { 4367 return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol); 4368 } 4369 static FORCEINLINE HRESULT IWMReaderAdvanced2_StartAtMarker(IWMReaderAdvanced2* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) { 4370 return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext); 4371 } 4372 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetOutputSetting(IWMReaderAdvanced2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { 4373 return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength); 4374 } 4375 static FORCEINLINE HRESULT IWMReaderAdvanced2_SetOutputSetting(IWMReaderAdvanced2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { 4376 return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength); 4377 } 4378 static FORCEINLINE HRESULT IWMReaderAdvanced2_Preroll(IWMReaderAdvanced2* This,QWORD cnsStart,QWORD cnsDuration,float fRate) { 4379 return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate); 4380 } 4381 static FORCEINLINE HRESULT IWMReaderAdvanced2_SetLogClientID(IWMReaderAdvanced2* This,WINBOOL fLogClientID) { 4382 return This->lpVtbl->SetLogClientID(This,fLogClientID); 4383 } 4384 static FORCEINLINE HRESULT IWMReaderAdvanced2_GetLogClientID(IWMReaderAdvanced2* This,WINBOOL *pfLogClientID) { 4385 return This->lpVtbl->GetLogClientID(This,pfLogClientID); 4386 } 4387 static FORCEINLINE HRESULT IWMReaderAdvanced2_StopBuffering(IWMReaderAdvanced2* This) { 4388 return This->lpVtbl->StopBuffering(This); 4389 } 4390 static FORCEINLINE HRESULT IWMReaderAdvanced2_OpenStream(IWMReaderAdvanced2* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) { 4391 return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext); 4392 } 4393 #endif 4394 #endif 4395 4396 #endif 4397 4398 4399 #endif /* __IWMReaderAdvanced2_INTERFACE_DEFINED__ */ 4400 4401 /***************************************************************************** 4402 * IWMReaderAdvanced3 interface 4403 */ 4404 #ifndef __IWMReaderAdvanced3_INTERFACE_DEFINED__ 4405 #define __IWMReaderAdvanced3_INTERFACE_DEFINED__ 4406 4407 DEFINE_GUID(IID_IWMReaderAdvanced3, 0x5dc0674b, 0xf04b, 0x4a4e, 0x9f,0x2a, 0xb1,0xaf,0xde,0x2c,0x81,0x00); 4408 #if defined(__cplusplus) && !defined(CINTERFACE) 4409 MIDL_INTERFACE("5dc0674b-f04b-4a4e-9f2a-b1afde2c8100") 4410 IWMReaderAdvanced3 : public IWMReaderAdvanced2 4411 { 4412 virtual HRESULT STDMETHODCALLTYPE StopNetStreaming( 4413 ) = 0; 4414 4415 virtual HRESULT STDMETHODCALLTYPE StartAtPosition( 4416 WORD wStreamNum, 4417 void *pvOffsetStart, 4418 void *pvDuration, 4419 WMT_OFFSET_FORMAT dwOffsetFormat, 4420 float fRate, 4421 void *pvContext) = 0; 4422 4423 }; 4424 #ifdef __CRT_UUID_DECL 4425 __CRT_UUID_DECL(IWMReaderAdvanced3, 0x5dc0674b, 0xf04b, 0x4a4e, 0x9f,0x2a, 0xb1,0xaf,0xde,0x2c,0x81,0x00) 4426 #endif 4427 #else 4428 typedef struct IWMReaderAdvanced3Vtbl { 4429 BEGIN_INTERFACE 4430 4431 /*** IUnknown methods ***/ 4432 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 4433 IWMReaderAdvanced3 *This, 4434 REFIID riid, 4435 void **ppvObject); 4436 4437 ULONG (STDMETHODCALLTYPE *AddRef)( 4438 IWMReaderAdvanced3 *This); 4439 4440 ULONG (STDMETHODCALLTYPE *Release)( 4441 IWMReaderAdvanced3 *This); 4442 4443 /*** IWMReaderAdvanced methods ***/ 4444 HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)( 4445 IWMReaderAdvanced3 *This, 4446 WINBOOL fUserClock); 4447 4448 HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)( 4449 IWMReaderAdvanced3 *This, 4450 WINBOOL *pfUserClock); 4451 4452 HRESULT (STDMETHODCALLTYPE *DeliverTime)( 4453 IWMReaderAdvanced3 *This, 4454 QWORD cnsTime); 4455 4456 HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)( 4457 IWMReaderAdvanced3 *This, 4458 WINBOOL fSelection); 4459 4460 HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)( 4461 IWMReaderAdvanced3 *This, 4462 WINBOOL *pfSelection); 4463 4464 HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)( 4465 IWMReaderAdvanced3 *This, 4466 WORD cStreamCount, 4467 WORD *pwStreamNumbers, 4468 WMT_STREAM_SELECTION *pSelections); 4469 4470 HRESULT (STDMETHODCALLTYPE *GetStreamSelected)( 4471 IWMReaderAdvanced3 *This, 4472 WORD wStreamNum, 4473 WMT_STREAM_SELECTION *pSelection); 4474 4475 HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)( 4476 IWMReaderAdvanced3 *This, 4477 WINBOOL fGetCallbacks); 4478 4479 HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)( 4480 IWMReaderAdvanced3 *This, 4481 WINBOOL *pfGetCallbacks); 4482 4483 HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)( 4484 IWMReaderAdvanced3 *This, 4485 WORD wStreamNum, 4486 WINBOOL fReceiveStreamSamples); 4487 4488 HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)( 4489 IWMReaderAdvanced3 *This, 4490 WORD wStreamNum, 4491 WINBOOL *pfReceiveStreamSamples); 4492 4493 HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)( 4494 IWMReaderAdvanced3 *This, 4495 DWORD dwOutputNum, 4496 WINBOOL fAllocate); 4497 4498 HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)( 4499 IWMReaderAdvanced3 *This, 4500 DWORD dwOutputNum, 4501 WINBOOL *pfAllocate); 4502 4503 HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)( 4504 IWMReaderAdvanced3 *This, 4505 WORD wStreamNum, 4506 WINBOOL fAllocate); 4507 4508 HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)( 4509 IWMReaderAdvanced3 *This, 4510 WORD dwStreamNum, 4511 WINBOOL *pfAllocate); 4512 4513 HRESULT (STDMETHODCALLTYPE *GetStatistics)( 4514 IWMReaderAdvanced3 *This, 4515 WM_READER_STATISTICS *pStatistics); 4516 4517 HRESULT (STDMETHODCALLTYPE *SetClientInfo)( 4518 IWMReaderAdvanced3 *This, 4519 WM_READER_CLIENTINFO *pClientInfo); 4520 4521 HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)( 4522 IWMReaderAdvanced3 *This, 4523 DWORD dwOutput, 4524 DWORD *pcbMax); 4525 4526 HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)( 4527 IWMReaderAdvanced3 *This, 4528 WORD wStream, 4529 DWORD *pcbMax); 4530 4531 HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)( 4532 IWMReaderAdvanced3 *This, 4533 QWORD cnsLateness); 4534 4535 /*** IWMReaderAdvanced2 methods ***/ 4536 HRESULT (STDMETHODCALLTYPE *SetPlayMode)( 4537 IWMReaderAdvanced3 *This, 4538 WMT_PLAY_MODE Mode); 4539 4540 HRESULT (STDMETHODCALLTYPE *GetPlayMode)( 4541 IWMReaderAdvanced3 *This, 4542 WMT_PLAY_MODE *pMode); 4543 4544 HRESULT (STDMETHODCALLTYPE *GetBufferProgress)( 4545 IWMReaderAdvanced3 *This, 4546 DWORD *pdwPercent, 4547 QWORD *pcnsBuffering); 4548 4549 HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)( 4550 IWMReaderAdvanced3 *This, 4551 DWORD *pdwPercent, 4552 QWORD *pqwBytesDownloaded, 4553 QWORD *pcnsDownload); 4554 4555 HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)( 4556 IWMReaderAdvanced3 *This, 4557 DWORD *pdwPercent); 4558 4559 HRESULT (STDMETHODCALLTYPE *SaveFileAs)( 4560 IWMReaderAdvanced3 *This, 4561 const WCHAR *pwszFilename); 4562 4563 HRESULT (STDMETHODCALLTYPE *GetProtocolName)( 4564 IWMReaderAdvanced3 *This, 4565 WCHAR *pwszProtocol, 4566 DWORD *pcchProtocol); 4567 4568 HRESULT (STDMETHODCALLTYPE *StartAtMarker)( 4569 IWMReaderAdvanced3 *This, 4570 WORD wMarkerIndex, 4571 QWORD cnsDuration, 4572 float fRate, 4573 void *pvContext); 4574 4575 HRESULT (STDMETHODCALLTYPE *GetOutputSetting)( 4576 IWMReaderAdvanced3 *This, 4577 DWORD dwOutputNum, 4578 LPCWSTR pszName, 4579 WMT_ATTR_DATATYPE *pType, 4580 BYTE *pValue, 4581 WORD *pcbLength); 4582 4583 HRESULT (STDMETHODCALLTYPE *SetOutputSetting)( 4584 IWMReaderAdvanced3 *This, 4585 DWORD dwOutputNum, 4586 LPCWSTR pszName, 4587 WMT_ATTR_DATATYPE Type, 4588 const BYTE *pValue, 4589 WORD cbLength); 4590 4591 HRESULT (STDMETHODCALLTYPE *Preroll)( 4592 IWMReaderAdvanced3 *This, 4593 QWORD cnsStart, 4594 QWORD cnsDuration, 4595 float fRate); 4596 4597 HRESULT (STDMETHODCALLTYPE *SetLogClientID)( 4598 IWMReaderAdvanced3 *This, 4599 WINBOOL fLogClientID); 4600 4601 HRESULT (STDMETHODCALLTYPE *GetLogClientID)( 4602 IWMReaderAdvanced3 *This, 4603 WINBOOL *pfLogClientID); 4604 4605 HRESULT (STDMETHODCALLTYPE *StopBuffering)( 4606 IWMReaderAdvanced3 *This); 4607 4608 HRESULT (STDMETHODCALLTYPE *OpenStream)( 4609 IWMReaderAdvanced3 *This, 4610 IStream *pStream, 4611 IWMReaderCallback *pCallback, 4612 void *pvContext); 4613 4614 /*** IWMReaderAdvanced3 methods ***/ 4615 HRESULT (STDMETHODCALLTYPE *StopNetStreaming)( 4616 IWMReaderAdvanced3 *This); 4617 4618 HRESULT (STDMETHODCALLTYPE *StartAtPosition)( 4619 IWMReaderAdvanced3 *This, 4620 WORD wStreamNum, 4621 void *pvOffsetStart, 4622 void *pvDuration, 4623 WMT_OFFSET_FORMAT dwOffsetFormat, 4624 float fRate, 4625 void *pvContext); 4626 4627 END_INTERFACE 4628 } IWMReaderAdvanced3Vtbl; 4629 4630 interface IWMReaderAdvanced3 { 4631 CONST_VTBL IWMReaderAdvanced3Vtbl* lpVtbl; 4632 }; 4633 4634 #ifdef COBJMACROS 4635 #ifndef WIDL_C_INLINE_WRAPPERS 4636 /*** IUnknown methods ***/ 4637 #define IWMReaderAdvanced3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 4638 #define IWMReaderAdvanced3_AddRef(This) (This)->lpVtbl->AddRef(This) 4639 #define IWMReaderAdvanced3_Release(This) (This)->lpVtbl->Release(This) 4640 /*** IWMReaderAdvanced methods ***/ 4641 #define IWMReaderAdvanced3_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock) 4642 #define IWMReaderAdvanced3_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock) 4643 #define IWMReaderAdvanced3_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime) 4644 #define IWMReaderAdvanced3_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection) 4645 #define IWMReaderAdvanced3_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection) 4646 #define IWMReaderAdvanced3_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) 4647 #define IWMReaderAdvanced3_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection) 4648 #define IWMReaderAdvanced3_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks) 4649 #define IWMReaderAdvanced3_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks) 4650 #define IWMReaderAdvanced3_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) 4651 #define IWMReaderAdvanced3_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) 4652 #define IWMReaderAdvanced3_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate) 4653 #define IWMReaderAdvanced3_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate) 4654 #define IWMReaderAdvanced3_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate) 4655 #define IWMReaderAdvanced3_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate) 4656 #define IWMReaderAdvanced3_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics) 4657 #define IWMReaderAdvanced3_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo) 4658 #define IWMReaderAdvanced3_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax) 4659 #define IWMReaderAdvanced3_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax) 4660 #define IWMReaderAdvanced3_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness) 4661 /*** IWMReaderAdvanced2 methods ***/ 4662 #define IWMReaderAdvanced3_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode) 4663 #define IWMReaderAdvanced3_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode) 4664 #define IWMReaderAdvanced3_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering) 4665 #define IWMReaderAdvanced3_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) 4666 #define IWMReaderAdvanced3_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent) 4667 #define IWMReaderAdvanced3_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename) 4668 #define IWMReaderAdvanced3_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol) 4669 #define IWMReaderAdvanced3_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) 4670 #define IWMReaderAdvanced3_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) 4671 #define IWMReaderAdvanced3_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) 4672 #define IWMReaderAdvanced3_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate) 4673 #define IWMReaderAdvanced3_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID) 4674 #define IWMReaderAdvanced3_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID) 4675 #define IWMReaderAdvanced3_StopBuffering(This) (This)->lpVtbl->StopBuffering(This) 4676 #define IWMReaderAdvanced3_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext) 4677 /*** IWMReaderAdvanced3 methods ***/ 4678 #define IWMReaderAdvanced3_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This) 4679 #define IWMReaderAdvanced3_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) 4680 #else 4681 /*** IUnknown methods ***/ 4682 static FORCEINLINE HRESULT IWMReaderAdvanced3_QueryInterface(IWMReaderAdvanced3* This,REFIID riid,void **ppvObject) { 4683 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 4684 } 4685 static FORCEINLINE ULONG IWMReaderAdvanced3_AddRef(IWMReaderAdvanced3* This) { 4686 return This->lpVtbl->AddRef(This); 4687 } 4688 static FORCEINLINE ULONG IWMReaderAdvanced3_Release(IWMReaderAdvanced3* This) { 4689 return This->lpVtbl->Release(This); 4690 } 4691 /*** IWMReaderAdvanced methods ***/ 4692 static FORCEINLINE HRESULT IWMReaderAdvanced3_SetUserProvidedClock(IWMReaderAdvanced3* This,WINBOOL fUserClock) { 4693 return This->lpVtbl->SetUserProvidedClock(This,fUserClock); 4694 } 4695 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetUserProvidedClock(IWMReaderAdvanced3* This,WINBOOL *pfUserClock) { 4696 return This->lpVtbl->GetUserProvidedClock(This,pfUserClock); 4697 } 4698 static FORCEINLINE HRESULT IWMReaderAdvanced3_DeliverTime(IWMReaderAdvanced3* This,QWORD cnsTime) { 4699 return This->lpVtbl->DeliverTime(This,cnsTime); 4700 } 4701 static FORCEINLINE HRESULT IWMReaderAdvanced3_SetManualStreamSelection(IWMReaderAdvanced3* This,WINBOOL fSelection) { 4702 return This->lpVtbl->SetManualStreamSelection(This,fSelection); 4703 } 4704 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetManualStreamSelection(IWMReaderAdvanced3* This,WINBOOL *pfSelection) { 4705 return This->lpVtbl->GetManualStreamSelection(This,pfSelection); 4706 } 4707 static FORCEINLINE HRESULT IWMReaderAdvanced3_SetStreamsSelected(IWMReaderAdvanced3* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) { 4708 return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections); 4709 } 4710 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetStreamSelected(IWMReaderAdvanced3* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) { 4711 return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection); 4712 } 4713 static FORCEINLINE HRESULT IWMReaderAdvanced3_SetReceiveSelectionCallbacks(IWMReaderAdvanced3* This,WINBOOL fGetCallbacks) { 4714 return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks); 4715 } 4716 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetReceiveSelectionCallbacks(IWMReaderAdvanced3* This,WINBOOL *pfGetCallbacks) { 4717 return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks); 4718 } 4719 static FORCEINLINE HRESULT IWMReaderAdvanced3_SetReceiveStreamSamples(IWMReaderAdvanced3* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) { 4720 return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples); 4721 } 4722 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetReceiveStreamSamples(IWMReaderAdvanced3* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) { 4723 return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples); 4724 } 4725 static FORCEINLINE HRESULT IWMReaderAdvanced3_SetAllocateForOutput(IWMReaderAdvanced3* This,DWORD dwOutputNum,WINBOOL fAllocate) { 4726 return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate); 4727 } 4728 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetAllocateForOutput(IWMReaderAdvanced3* This,DWORD dwOutputNum,WINBOOL *pfAllocate) { 4729 return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate); 4730 } 4731 static FORCEINLINE HRESULT IWMReaderAdvanced3_SetAllocateForStream(IWMReaderAdvanced3* This,WORD wStreamNum,WINBOOL fAllocate) { 4732 return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate); 4733 } 4734 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetAllocateForStream(IWMReaderAdvanced3* This,WORD dwStreamNum,WINBOOL *pfAllocate) { 4735 return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate); 4736 } 4737 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetStatistics(IWMReaderAdvanced3* This,WM_READER_STATISTICS *pStatistics) { 4738 return This->lpVtbl->GetStatistics(This,pStatistics); 4739 } 4740 static FORCEINLINE HRESULT IWMReaderAdvanced3_SetClientInfo(IWMReaderAdvanced3* This,WM_READER_CLIENTINFO *pClientInfo) { 4741 return This->lpVtbl->SetClientInfo(This,pClientInfo); 4742 } 4743 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetMaxOutputSampleSize(IWMReaderAdvanced3* This,DWORD dwOutput,DWORD *pcbMax) { 4744 return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax); 4745 } 4746 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetMaxStreamSampleSize(IWMReaderAdvanced3* This,WORD wStream,DWORD *pcbMax) { 4747 return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax); 4748 } 4749 static FORCEINLINE HRESULT IWMReaderAdvanced3_NotifyLateDelivery(IWMReaderAdvanced3* This,QWORD cnsLateness) { 4750 return This->lpVtbl->NotifyLateDelivery(This,cnsLateness); 4751 } 4752 /*** IWMReaderAdvanced2 methods ***/ 4753 static FORCEINLINE HRESULT IWMReaderAdvanced3_SetPlayMode(IWMReaderAdvanced3* This,WMT_PLAY_MODE Mode) { 4754 return This->lpVtbl->SetPlayMode(This,Mode); 4755 } 4756 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetPlayMode(IWMReaderAdvanced3* This,WMT_PLAY_MODE *pMode) { 4757 return This->lpVtbl->GetPlayMode(This,pMode); 4758 } 4759 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetBufferProgress(IWMReaderAdvanced3* This,DWORD *pdwPercent,QWORD *pcnsBuffering) { 4760 return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering); 4761 } 4762 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetDownloadProgress(IWMReaderAdvanced3* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) { 4763 return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload); 4764 } 4765 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetSaveAsProgress(IWMReaderAdvanced3* This,DWORD *pdwPercent) { 4766 return This->lpVtbl->GetSaveAsProgress(This,pdwPercent); 4767 } 4768 static FORCEINLINE HRESULT IWMReaderAdvanced3_SaveFileAs(IWMReaderAdvanced3* This,const WCHAR *pwszFilename) { 4769 return This->lpVtbl->SaveFileAs(This,pwszFilename); 4770 } 4771 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetProtocolName(IWMReaderAdvanced3* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) { 4772 return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol); 4773 } 4774 static FORCEINLINE HRESULT IWMReaderAdvanced3_StartAtMarker(IWMReaderAdvanced3* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) { 4775 return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext); 4776 } 4777 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetOutputSetting(IWMReaderAdvanced3* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { 4778 return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength); 4779 } 4780 static FORCEINLINE HRESULT IWMReaderAdvanced3_SetOutputSetting(IWMReaderAdvanced3* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { 4781 return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength); 4782 } 4783 static FORCEINLINE HRESULT IWMReaderAdvanced3_Preroll(IWMReaderAdvanced3* This,QWORD cnsStart,QWORD cnsDuration,float fRate) { 4784 return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate); 4785 } 4786 static FORCEINLINE HRESULT IWMReaderAdvanced3_SetLogClientID(IWMReaderAdvanced3* This,WINBOOL fLogClientID) { 4787 return This->lpVtbl->SetLogClientID(This,fLogClientID); 4788 } 4789 static FORCEINLINE HRESULT IWMReaderAdvanced3_GetLogClientID(IWMReaderAdvanced3* This,WINBOOL *pfLogClientID) { 4790 return This->lpVtbl->GetLogClientID(This,pfLogClientID); 4791 } 4792 static FORCEINLINE HRESULT IWMReaderAdvanced3_StopBuffering(IWMReaderAdvanced3* This) { 4793 return This->lpVtbl->StopBuffering(This); 4794 } 4795 static FORCEINLINE HRESULT IWMReaderAdvanced3_OpenStream(IWMReaderAdvanced3* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) { 4796 return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext); 4797 } 4798 /*** IWMReaderAdvanced3 methods ***/ 4799 static FORCEINLINE HRESULT IWMReaderAdvanced3_StopNetStreaming(IWMReaderAdvanced3* This) { 4800 return This->lpVtbl->StopNetStreaming(This); 4801 } 4802 static FORCEINLINE HRESULT IWMReaderAdvanced3_StartAtPosition(IWMReaderAdvanced3* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) { 4803 return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext); 4804 } 4805 #endif 4806 #endif 4807 4808 #endif 4809 4810 4811 #endif /* __IWMReaderAdvanced3_INTERFACE_DEFINED__ */ 4812 4813 /***************************************************************************** 4814 * IWMReaderAdvanced4 interface 4815 */ 4816 #ifndef __IWMReaderAdvanced4_INTERFACE_DEFINED__ 4817 #define __IWMReaderAdvanced4_INTERFACE_DEFINED__ 4818 4819 DEFINE_GUID(IID_IWMReaderAdvanced4, 0x945a76a2, 0x12ae, 0x4d48, 0xbd,0x3c, 0xcd,0x1d,0x90,0x39,0x9b,0x85); 4820 #if defined(__cplusplus) && !defined(CINTERFACE) 4821 MIDL_INTERFACE("945a76a2-12ae-4d48-bd3c-cd1d90399b85") 4822 IWMReaderAdvanced4 : public IWMReaderAdvanced3 4823 { 4824 virtual HRESULT STDMETHODCALLTYPE GetLanguageCount( 4825 DWORD dwOutputNum, 4826 WORD *pwLanguageCount) = 0; 4827 4828 virtual HRESULT STDMETHODCALLTYPE GetLanguage( 4829 DWORD dwOutputNum, 4830 WORD wLanguage, 4831 WCHAR *pwszLanguageString, 4832 WORD *pcchLanguageStringLength) = 0; 4833 4834 virtual HRESULT STDMETHODCALLTYPE GetMaxSpeedFactor( 4835 double *pdblFactor) = 0; 4836 4837 virtual HRESULT STDMETHODCALLTYPE IsUsingFastCache( 4838 WINBOOL *pfUsingFastCache) = 0; 4839 4840 virtual HRESULT STDMETHODCALLTYPE AddLogParam( 4841 LPCWSTR wszNameSpace, 4842 LPCWSTR wszName, 4843 LPCWSTR wszValue) = 0; 4844 4845 virtual HRESULT STDMETHODCALLTYPE SendLogParams( 4846 ) = 0; 4847 4848 virtual HRESULT STDMETHODCALLTYPE CanSaveFileAs( 4849 WINBOOL *pfCanSave) = 0; 4850 4851 virtual HRESULT STDMETHODCALLTYPE CancelSaveFileAs( 4852 ) = 0; 4853 4854 virtual HRESULT STDMETHODCALLTYPE GetURL( 4855 WCHAR *pwszURL, 4856 DWORD *pcchURL) = 0; 4857 4858 }; 4859 #ifdef __CRT_UUID_DECL 4860 __CRT_UUID_DECL(IWMReaderAdvanced4, 0x945a76a2, 0x12ae, 0x4d48, 0xbd,0x3c, 0xcd,0x1d,0x90,0x39,0x9b,0x85) 4861 #endif 4862 #else 4863 typedef struct IWMReaderAdvanced4Vtbl { 4864 BEGIN_INTERFACE 4865 4866 /*** IUnknown methods ***/ 4867 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 4868 IWMReaderAdvanced4 *This, 4869 REFIID riid, 4870 void **ppvObject); 4871 4872 ULONG (STDMETHODCALLTYPE *AddRef)( 4873 IWMReaderAdvanced4 *This); 4874 4875 ULONG (STDMETHODCALLTYPE *Release)( 4876 IWMReaderAdvanced4 *This); 4877 4878 /*** IWMReaderAdvanced methods ***/ 4879 HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)( 4880 IWMReaderAdvanced4 *This, 4881 WINBOOL fUserClock); 4882 4883 HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)( 4884 IWMReaderAdvanced4 *This, 4885 WINBOOL *pfUserClock); 4886 4887 HRESULT (STDMETHODCALLTYPE *DeliverTime)( 4888 IWMReaderAdvanced4 *This, 4889 QWORD cnsTime); 4890 4891 HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)( 4892 IWMReaderAdvanced4 *This, 4893 WINBOOL fSelection); 4894 4895 HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)( 4896 IWMReaderAdvanced4 *This, 4897 WINBOOL *pfSelection); 4898 4899 HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)( 4900 IWMReaderAdvanced4 *This, 4901 WORD cStreamCount, 4902 WORD *pwStreamNumbers, 4903 WMT_STREAM_SELECTION *pSelections); 4904 4905 HRESULT (STDMETHODCALLTYPE *GetStreamSelected)( 4906 IWMReaderAdvanced4 *This, 4907 WORD wStreamNum, 4908 WMT_STREAM_SELECTION *pSelection); 4909 4910 HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)( 4911 IWMReaderAdvanced4 *This, 4912 WINBOOL fGetCallbacks); 4913 4914 HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)( 4915 IWMReaderAdvanced4 *This, 4916 WINBOOL *pfGetCallbacks); 4917 4918 HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)( 4919 IWMReaderAdvanced4 *This, 4920 WORD wStreamNum, 4921 WINBOOL fReceiveStreamSamples); 4922 4923 HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)( 4924 IWMReaderAdvanced4 *This, 4925 WORD wStreamNum, 4926 WINBOOL *pfReceiveStreamSamples); 4927 4928 HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)( 4929 IWMReaderAdvanced4 *This, 4930 DWORD dwOutputNum, 4931 WINBOOL fAllocate); 4932 4933 HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)( 4934 IWMReaderAdvanced4 *This, 4935 DWORD dwOutputNum, 4936 WINBOOL *pfAllocate); 4937 4938 HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)( 4939 IWMReaderAdvanced4 *This, 4940 WORD wStreamNum, 4941 WINBOOL fAllocate); 4942 4943 HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)( 4944 IWMReaderAdvanced4 *This, 4945 WORD dwStreamNum, 4946 WINBOOL *pfAllocate); 4947 4948 HRESULT (STDMETHODCALLTYPE *GetStatistics)( 4949 IWMReaderAdvanced4 *This, 4950 WM_READER_STATISTICS *pStatistics); 4951 4952 HRESULT (STDMETHODCALLTYPE *SetClientInfo)( 4953 IWMReaderAdvanced4 *This, 4954 WM_READER_CLIENTINFO *pClientInfo); 4955 4956 HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)( 4957 IWMReaderAdvanced4 *This, 4958 DWORD dwOutput, 4959 DWORD *pcbMax); 4960 4961 HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)( 4962 IWMReaderAdvanced4 *This, 4963 WORD wStream, 4964 DWORD *pcbMax); 4965 4966 HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)( 4967 IWMReaderAdvanced4 *This, 4968 QWORD cnsLateness); 4969 4970 /*** IWMReaderAdvanced2 methods ***/ 4971 HRESULT (STDMETHODCALLTYPE *SetPlayMode)( 4972 IWMReaderAdvanced4 *This, 4973 WMT_PLAY_MODE Mode); 4974 4975 HRESULT (STDMETHODCALLTYPE *GetPlayMode)( 4976 IWMReaderAdvanced4 *This, 4977 WMT_PLAY_MODE *pMode); 4978 4979 HRESULT (STDMETHODCALLTYPE *GetBufferProgress)( 4980 IWMReaderAdvanced4 *This, 4981 DWORD *pdwPercent, 4982 QWORD *pcnsBuffering); 4983 4984 HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)( 4985 IWMReaderAdvanced4 *This, 4986 DWORD *pdwPercent, 4987 QWORD *pqwBytesDownloaded, 4988 QWORD *pcnsDownload); 4989 4990 HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)( 4991 IWMReaderAdvanced4 *This, 4992 DWORD *pdwPercent); 4993 4994 HRESULT (STDMETHODCALLTYPE *SaveFileAs)( 4995 IWMReaderAdvanced4 *This, 4996 const WCHAR *pwszFilename); 4997 4998 HRESULT (STDMETHODCALLTYPE *GetProtocolName)( 4999 IWMReaderAdvanced4 *This, 5000 WCHAR *pwszProtocol, 5001 DWORD *pcchProtocol); 5002 5003 HRESULT (STDMETHODCALLTYPE *StartAtMarker)( 5004 IWMReaderAdvanced4 *This, 5005 WORD wMarkerIndex, 5006 QWORD cnsDuration, 5007 float fRate, 5008 void *pvContext); 5009 5010 HRESULT (STDMETHODCALLTYPE *GetOutputSetting)( 5011 IWMReaderAdvanced4 *This, 5012 DWORD dwOutputNum, 5013 LPCWSTR pszName, 5014 WMT_ATTR_DATATYPE *pType, 5015 BYTE *pValue, 5016 WORD *pcbLength); 5017 5018 HRESULT (STDMETHODCALLTYPE *SetOutputSetting)( 5019 IWMReaderAdvanced4 *This, 5020 DWORD dwOutputNum, 5021 LPCWSTR pszName, 5022 WMT_ATTR_DATATYPE Type, 5023 const BYTE *pValue, 5024 WORD cbLength); 5025 5026 HRESULT (STDMETHODCALLTYPE *Preroll)( 5027 IWMReaderAdvanced4 *This, 5028 QWORD cnsStart, 5029 QWORD cnsDuration, 5030 float fRate); 5031 5032 HRESULT (STDMETHODCALLTYPE *SetLogClientID)( 5033 IWMReaderAdvanced4 *This, 5034 WINBOOL fLogClientID); 5035 5036 HRESULT (STDMETHODCALLTYPE *GetLogClientID)( 5037 IWMReaderAdvanced4 *This, 5038 WINBOOL *pfLogClientID); 5039 5040 HRESULT (STDMETHODCALLTYPE *StopBuffering)( 5041 IWMReaderAdvanced4 *This); 5042 5043 HRESULT (STDMETHODCALLTYPE *OpenStream)( 5044 IWMReaderAdvanced4 *This, 5045 IStream *pStream, 5046 IWMReaderCallback *pCallback, 5047 void *pvContext); 5048 5049 /*** IWMReaderAdvanced3 methods ***/ 5050 HRESULT (STDMETHODCALLTYPE *StopNetStreaming)( 5051 IWMReaderAdvanced4 *This); 5052 5053 HRESULT (STDMETHODCALLTYPE *StartAtPosition)( 5054 IWMReaderAdvanced4 *This, 5055 WORD wStreamNum, 5056 void *pvOffsetStart, 5057 void *pvDuration, 5058 WMT_OFFSET_FORMAT dwOffsetFormat, 5059 float fRate, 5060 void *pvContext); 5061 5062 /*** IWMReaderAdvanced4 methods ***/ 5063 HRESULT (STDMETHODCALLTYPE *GetLanguageCount)( 5064 IWMReaderAdvanced4 *This, 5065 DWORD dwOutputNum, 5066 WORD *pwLanguageCount); 5067 5068 HRESULT (STDMETHODCALLTYPE *GetLanguage)( 5069 IWMReaderAdvanced4 *This, 5070 DWORD dwOutputNum, 5071 WORD wLanguage, 5072 WCHAR *pwszLanguageString, 5073 WORD *pcchLanguageStringLength); 5074 5075 HRESULT (STDMETHODCALLTYPE *GetMaxSpeedFactor)( 5076 IWMReaderAdvanced4 *This, 5077 double *pdblFactor); 5078 5079 HRESULT (STDMETHODCALLTYPE *IsUsingFastCache)( 5080 IWMReaderAdvanced4 *This, 5081 WINBOOL *pfUsingFastCache); 5082 5083 HRESULT (STDMETHODCALLTYPE *AddLogParam)( 5084 IWMReaderAdvanced4 *This, 5085 LPCWSTR wszNameSpace, 5086 LPCWSTR wszName, 5087 LPCWSTR wszValue); 5088 5089 HRESULT (STDMETHODCALLTYPE *SendLogParams)( 5090 IWMReaderAdvanced4 *This); 5091 5092 HRESULT (STDMETHODCALLTYPE *CanSaveFileAs)( 5093 IWMReaderAdvanced4 *This, 5094 WINBOOL *pfCanSave); 5095 5096 HRESULT (STDMETHODCALLTYPE *CancelSaveFileAs)( 5097 IWMReaderAdvanced4 *This); 5098 5099 HRESULT (STDMETHODCALLTYPE *GetURL)( 5100 IWMReaderAdvanced4 *This, 5101 WCHAR *pwszURL, 5102 DWORD *pcchURL); 5103 5104 END_INTERFACE 5105 } IWMReaderAdvanced4Vtbl; 5106 5107 interface IWMReaderAdvanced4 { 5108 CONST_VTBL IWMReaderAdvanced4Vtbl* lpVtbl; 5109 }; 5110 5111 #ifdef COBJMACROS 5112 #ifndef WIDL_C_INLINE_WRAPPERS 5113 /*** IUnknown methods ***/ 5114 #define IWMReaderAdvanced4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 5115 #define IWMReaderAdvanced4_AddRef(This) (This)->lpVtbl->AddRef(This) 5116 #define IWMReaderAdvanced4_Release(This) (This)->lpVtbl->Release(This) 5117 /*** IWMReaderAdvanced methods ***/ 5118 #define IWMReaderAdvanced4_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock) 5119 #define IWMReaderAdvanced4_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock) 5120 #define IWMReaderAdvanced4_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime) 5121 #define IWMReaderAdvanced4_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection) 5122 #define IWMReaderAdvanced4_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection) 5123 #define IWMReaderAdvanced4_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) 5124 #define IWMReaderAdvanced4_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection) 5125 #define IWMReaderAdvanced4_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks) 5126 #define IWMReaderAdvanced4_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks) 5127 #define IWMReaderAdvanced4_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) 5128 #define IWMReaderAdvanced4_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) 5129 #define IWMReaderAdvanced4_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate) 5130 #define IWMReaderAdvanced4_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate) 5131 #define IWMReaderAdvanced4_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate) 5132 #define IWMReaderAdvanced4_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate) 5133 #define IWMReaderAdvanced4_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics) 5134 #define IWMReaderAdvanced4_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo) 5135 #define IWMReaderAdvanced4_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax) 5136 #define IWMReaderAdvanced4_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax) 5137 #define IWMReaderAdvanced4_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness) 5138 /*** IWMReaderAdvanced2 methods ***/ 5139 #define IWMReaderAdvanced4_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode) 5140 #define IWMReaderAdvanced4_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode) 5141 #define IWMReaderAdvanced4_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering) 5142 #define IWMReaderAdvanced4_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) 5143 #define IWMReaderAdvanced4_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent) 5144 #define IWMReaderAdvanced4_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename) 5145 #define IWMReaderAdvanced4_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol) 5146 #define IWMReaderAdvanced4_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) 5147 #define IWMReaderAdvanced4_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) 5148 #define IWMReaderAdvanced4_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) 5149 #define IWMReaderAdvanced4_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate) 5150 #define IWMReaderAdvanced4_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID) 5151 #define IWMReaderAdvanced4_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID) 5152 #define IWMReaderAdvanced4_StopBuffering(This) (This)->lpVtbl->StopBuffering(This) 5153 #define IWMReaderAdvanced4_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext) 5154 /*** IWMReaderAdvanced3 methods ***/ 5155 #define IWMReaderAdvanced4_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This) 5156 #define IWMReaderAdvanced4_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) 5157 /*** IWMReaderAdvanced4 methods ***/ 5158 #define IWMReaderAdvanced4_GetLanguageCount(This,dwOutputNum,pwLanguageCount) (This)->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount) 5159 #define IWMReaderAdvanced4_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) (This)->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) 5160 #define IWMReaderAdvanced4_GetMaxSpeedFactor(This,pdblFactor) (This)->lpVtbl->GetMaxSpeedFactor(This,pdblFactor) 5161 #define IWMReaderAdvanced4_IsUsingFastCache(This,pfUsingFastCache) (This)->lpVtbl->IsUsingFastCache(This,pfUsingFastCache) 5162 #define IWMReaderAdvanced4_AddLogParam(This,wszNameSpace,wszName,wszValue) (This)->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue) 5163 #define IWMReaderAdvanced4_SendLogParams(This) (This)->lpVtbl->SendLogParams(This) 5164 #define IWMReaderAdvanced4_CanSaveFileAs(This,pfCanSave) (This)->lpVtbl->CanSaveFileAs(This,pfCanSave) 5165 #define IWMReaderAdvanced4_CancelSaveFileAs(This) (This)->lpVtbl->CancelSaveFileAs(This) 5166 #define IWMReaderAdvanced4_GetURL(This,pwszURL,pcchURL) (This)->lpVtbl->GetURL(This,pwszURL,pcchURL) 5167 #else 5168 /*** IUnknown methods ***/ 5169 static FORCEINLINE HRESULT IWMReaderAdvanced4_QueryInterface(IWMReaderAdvanced4* This,REFIID riid,void **ppvObject) { 5170 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 5171 } 5172 static FORCEINLINE ULONG IWMReaderAdvanced4_AddRef(IWMReaderAdvanced4* This) { 5173 return This->lpVtbl->AddRef(This); 5174 } 5175 static FORCEINLINE ULONG IWMReaderAdvanced4_Release(IWMReaderAdvanced4* This) { 5176 return This->lpVtbl->Release(This); 5177 } 5178 /*** IWMReaderAdvanced methods ***/ 5179 static FORCEINLINE HRESULT IWMReaderAdvanced4_SetUserProvidedClock(IWMReaderAdvanced4* This,WINBOOL fUserClock) { 5180 return This->lpVtbl->SetUserProvidedClock(This,fUserClock); 5181 } 5182 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetUserProvidedClock(IWMReaderAdvanced4* This,WINBOOL *pfUserClock) { 5183 return This->lpVtbl->GetUserProvidedClock(This,pfUserClock); 5184 } 5185 static FORCEINLINE HRESULT IWMReaderAdvanced4_DeliverTime(IWMReaderAdvanced4* This,QWORD cnsTime) { 5186 return This->lpVtbl->DeliverTime(This,cnsTime); 5187 } 5188 static FORCEINLINE HRESULT IWMReaderAdvanced4_SetManualStreamSelection(IWMReaderAdvanced4* This,WINBOOL fSelection) { 5189 return This->lpVtbl->SetManualStreamSelection(This,fSelection); 5190 } 5191 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetManualStreamSelection(IWMReaderAdvanced4* This,WINBOOL *pfSelection) { 5192 return This->lpVtbl->GetManualStreamSelection(This,pfSelection); 5193 } 5194 static FORCEINLINE HRESULT IWMReaderAdvanced4_SetStreamsSelected(IWMReaderAdvanced4* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) { 5195 return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections); 5196 } 5197 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetStreamSelected(IWMReaderAdvanced4* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) { 5198 return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection); 5199 } 5200 static FORCEINLINE HRESULT IWMReaderAdvanced4_SetReceiveSelectionCallbacks(IWMReaderAdvanced4* This,WINBOOL fGetCallbacks) { 5201 return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks); 5202 } 5203 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetReceiveSelectionCallbacks(IWMReaderAdvanced4* This,WINBOOL *pfGetCallbacks) { 5204 return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks); 5205 } 5206 static FORCEINLINE HRESULT IWMReaderAdvanced4_SetReceiveStreamSamples(IWMReaderAdvanced4* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) { 5207 return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples); 5208 } 5209 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetReceiveStreamSamples(IWMReaderAdvanced4* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) { 5210 return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples); 5211 } 5212 static FORCEINLINE HRESULT IWMReaderAdvanced4_SetAllocateForOutput(IWMReaderAdvanced4* This,DWORD dwOutputNum,WINBOOL fAllocate) { 5213 return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate); 5214 } 5215 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetAllocateForOutput(IWMReaderAdvanced4* This,DWORD dwOutputNum,WINBOOL *pfAllocate) { 5216 return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate); 5217 } 5218 static FORCEINLINE HRESULT IWMReaderAdvanced4_SetAllocateForStream(IWMReaderAdvanced4* This,WORD wStreamNum,WINBOOL fAllocate) { 5219 return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate); 5220 } 5221 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetAllocateForStream(IWMReaderAdvanced4* This,WORD dwStreamNum,WINBOOL *pfAllocate) { 5222 return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate); 5223 } 5224 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetStatistics(IWMReaderAdvanced4* This,WM_READER_STATISTICS *pStatistics) { 5225 return This->lpVtbl->GetStatistics(This,pStatistics); 5226 } 5227 static FORCEINLINE HRESULT IWMReaderAdvanced4_SetClientInfo(IWMReaderAdvanced4* This,WM_READER_CLIENTINFO *pClientInfo) { 5228 return This->lpVtbl->SetClientInfo(This,pClientInfo); 5229 } 5230 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetMaxOutputSampleSize(IWMReaderAdvanced4* This,DWORD dwOutput,DWORD *pcbMax) { 5231 return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax); 5232 } 5233 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetMaxStreamSampleSize(IWMReaderAdvanced4* This,WORD wStream,DWORD *pcbMax) { 5234 return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax); 5235 } 5236 static FORCEINLINE HRESULT IWMReaderAdvanced4_NotifyLateDelivery(IWMReaderAdvanced4* This,QWORD cnsLateness) { 5237 return This->lpVtbl->NotifyLateDelivery(This,cnsLateness); 5238 } 5239 /*** IWMReaderAdvanced2 methods ***/ 5240 static FORCEINLINE HRESULT IWMReaderAdvanced4_SetPlayMode(IWMReaderAdvanced4* This,WMT_PLAY_MODE Mode) { 5241 return This->lpVtbl->SetPlayMode(This,Mode); 5242 } 5243 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetPlayMode(IWMReaderAdvanced4* This,WMT_PLAY_MODE *pMode) { 5244 return This->lpVtbl->GetPlayMode(This,pMode); 5245 } 5246 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetBufferProgress(IWMReaderAdvanced4* This,DWORD *pdwPercent,QWORD *pcnsBuffering) { 5247 return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering); 5248 } 5249 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetDownloadProgress(IWMReaderAdvanced4* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) { 5250 return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload); 5251 } 5252 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetSaveAsProgress(IWMReaderAdvanced4* This,DWORD *pdwPercent) { 5253 return This->lpVtbl->GetSaveAsProgress(This,pdwPercent); 5254 } 5255 static FORCEINLINE HRESULT IWMReaderAdvanced4_SaveFileAs(IWMReaderAdvanced4* This,const WCHAR *pwszFilename) { 5256 return This->lpVtbl->SaveFileAs(This,pwszFilename); 5257 } 5258 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetProtocolName(IWMReaderAdvanced4* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) { 5259 return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol); 5260 } 5261 static FORCEINLINE HRESULT IWMReaderAdvanced4_StartAtMarker(IWMReaderAdvanced4* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) { 5262 return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext); 5263 } 5264 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetOutputSetting(IWMReaderAdvanced4* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { 5265 return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength); 5266 } 5267 static FORCEINLINE HRESULT IWMReaderAdvanced4_SetOutputSetting(IWMReaderAdvanced4* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { 5268 return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength); 5269 } 5270 static FORCEINLINE HRESULT IWMReaderAdvanced4_Preroll(IWMReaderAdvanced4* This,QWORD cnsStart,QWORD cnsDuration,float fRate) { 5271 return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate); 5272 } 5273 static FORCEINLINE HRESULT IWMReaderAdvanced4_SetLogClientID(IWMReaderAdvanced4* This,WINBOOL fLogClientID) { 5274 return This->lpVtbl->SetLogClientID(This,fLogClientID); 5275 } 5276 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetLogClientID(IWMReaderAdvanced4* This,WINBOOL *pfLogClientID) { 5277 return This->lpVtbl->GetLogClientID(This,pfLogClientID); 5278 } 5279 static FORCEINLINE HRESULT IWMReaderAdvanced4_StopBuffering(IWMReaderAdvanced4* This) { 5280 return This->lpVtbl->StopBuffering(This); 5281 } 5282 static FORCEINLINE HRESULT IWMReaderAdvanced4_OpenStream(IWMReaderAdvanced4* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) { 5283 return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext); 5284 } 5285 /*** IWMReaderAdvanced3 methods ***/ 5286 static FORCEINLINE HRESULT IWMReaderAdvanced4_StopNetStreaming(IWMReaderAdvanced4* This) { 5287 return This->lpVtbl->StopNetStreaming(This); 5288 } 5289 static FORCEINLINE HRESULT IWMReaderAdvanced4_StartAtPosition(IWMReaderAdvanced4* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) { 5290 return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext); 5291 } 5292 /*** IWMReaderAdvanced4 methods ***/ 5293 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetLanguageCount(IWMReaderAdvanced4* This,DWORD dwOutputNum,WORD *pwLanguageCount) { 5294 return This->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount); 5295 } 5296 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetLanguage(IWMReaderAdvanced4* This,DWORD dwOutputNum,WORD wLanguage,WCHAR *pwszLanguageString,WORD *pcchLanguageStringLength) { 5297 return This->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength); 5298 } 5299 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetMaxSpeedFactor(IWMReaderAdvanced4* This,double *pdblFactor) { 5300 return This->lpVtbl->GetMaxSpeedFactor(This,pdblFactor); 5301 } 5302 static FORCEINLINE HRESULT IWMReaderAdvanced4_IsUsingFastCache(IWMReaderAdvanced4* This,WINBOOL *pfUsingFastCache) { 5303 return This->lpVtbl->IsUsingFastCache(This,pfUsingFastCache); 5304 } 5305 static FORCEINLINE HRESULT IWMReaderAdvanced4_AddLogParam(IWMReaderAdvanced4* This,LPCWSTR wszNameSpace,LPCWSTR wszName,LPCWSTR wszValue) { 5306 return This->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue); 5307 } 5308 static FORCEINLINE HRESULT IWMReaderAdvanced4_SendLogParams(IWMReaderAdvanced4* This) { 5309 return This->lpVtbl->SendLogParams(This); 5310 } 5311 static FORCEINLINE HRESULT IWMReaderAdvanced4_CanSaveFileAs(IWMReaderAdvanced4* This,WINBOOL *pfCanSave) { 5312 return This->lpVtbl->CanSaveFileAs(This,pfCanSave); 5313 } 5314 static FORCEINLINE HRESULT IWMReaderAdvanced4_CancelSaveFileAs(IWMReaderAdvanced4* This) { 5315 return This->lpVtbl->CancelSaveFileAs(This); 5316 } 5317 static FORCEINLINE HRESULT IWMReaderAdvanced4_GetURL(IWMReaderAdvanced4* This,WCHAR *pwszURL,DWORD *pcchURL) { 5318 return This->lpVtbl->GetURL(This,pwszURL,pcchURL); 5319 } 5320 #endif 5321 #endif 5322 5323 #endif 5324 5325 5326 #endif /* __IWMReaderAdvanced4_INTERFACE_DEFINED__ */ 5327 5328 /***************************************************************************** 5329 * IWMReaderAdvanced5 interface 5330 */ 5331 #ifndef __IWMReaderAdvanced5_INTERFACE_DEFINED__ 5332 #define __IWMReaderAdvanced5_INTERFACE_DEFINED__ 5333 5334 DEFINE_GUID(IID_IWMReaderAdvanced5, 0x24c44db0, 0x55d1, 0x49ae, 0xa5,0xcc, 0xf1,0x38,0x15,0xe3,0x63,0x63); 5335 #if defined(__cplusplus) && !defined(CINTERFACE) 5336 MIDL_INTERFACE("24c44db0-55d1-49ae-a5cc-f13815e36363") 5337 IWMReaderAdvanced5 : public IWMReaderAdvanced4 5338 { 5339 virtual HRESULT STDMETHODCALLTYPE SetPlayerHook( 5340 DWORD dwOutputNum, 5341 IWMPlayerHook *pHook) = 0; 5342 5343 }; 5344 #ifdef __CRT_UUID_DECL 5345 __CRT_UUID_DECL(IWMReaderAdvanced5, 0x24c44db0, 0x55d1, 0x49ae, 0xa5,0xcc, 0xf1,0x38,0x15,0xe3,0x63,0x63) 5346 #endif 5347 #else 5348 typedef struct IWMReaderAdvanced5Vtbl { 5349 BEGIN_INTERFACE 5350 5351 /*** IUnknown methods ***/ 5352 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 5353 IWMReaderAdvanced5 *This, 5354 REFIID riid, 5355 void **ppvObject); 5356 5357 ULONG (STDMETHODCALLTYPE *AddRef)( 5358 IWMReaderAdvanced5 *This); 5359 5360 ULONG (STDMETHODCALLTYPE *Release)( 5361 IWMReaderAdvanced5 *This); 5362 5363 /*** IWMReaderAdvanced methods ***/ 5364 HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)( 5365 IWMReaderAdvanced5 *This, 5366 WINBOOL fUserClock); 5367 5368 HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)( 5369 IWMReaderAdvanced5 *This, 5370 WINBOOL *pfUserClock); 5371 5372 HRESULT (STDMETHODCALLTYPE *DeliverTime)( 5373 IWMReaderAdvanced5 *This, 5374 QWORD cnsTime); 5375 5376 HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)( 5377 IWMReaderAdvanced5 *This, 5378 WINBOOL fSelection); 5379 5380 HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)( 5381 IWMReaderAdvanced5 *This, 5382 WINBOOL *pfSelection); 5383 5384 HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)( 5385 IWMReaderAdvanced5 *This, 5386 WORD cStreamCount, 5387 WORD *pwStreamNumbers, 5388 WMT_STREAM_SELECTION *pSelections); 5389 5390 HRESULT (STDMETHODCALLTYPE *GetStreamSelected)( 5391 IWMReaderAdvanced5 *This, 5392 WORD wStreamNum, 5393 WMT_STREAM_SELECTION *pSelection); 5394 5395 HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)( 5396 IWMReaderAdvanced5 *This, 5397 WINBOOL fGetCallbacks); 5398 5399 HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)( 5400 IWMReaderAdvanced5 *This, 5401 WINBOOL *pfGetCallbacks); 5402 5403 HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)( 5404 IWMReaderAdvanced5 *This, 5405 WORD wStreamNum, 5406 WINBOOL fReceiveStreamSamples); 5407 5408 HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)( 5409 IWMReaderAdvanced5 *This, 5410 WORD wStreamNum, 5411 WINBOOL *pfReceiveStreamSamples); 5412 5413 HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)( 5414 IWMReaderAdvanced5 *This, 5415 DWORD dwOutputNum, 5416 WINBOOL fAllocate); 5417 5418 HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)( 5419 IWMReaderAdvanced5 *This, 5420 DWORD dwOutputNum, 5421 WINBOOL *pfAllocate); 5422 5423 HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)( 5424 IWMReaderAdvanced5 *This, 5425 WORD wStreamNum, 5426 WINBOOL fAllocate); 5427 5428 HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)( 5429 IWMReaderAdvanced5 *This, 5430 WORD dwStreamNum, 5431 WINBOOL *pfAllocate); 5432 5433 HRESULT (STDMETHODCALLTYPE *GetStatistics)( 5434 IWMReaderAdvanced5 *This, 5435 WM_READER_STATISTICS *pStatistics); 5436 5437 HRESULT (STDMETHODCALLTYPE *SetClientInfo)( 5438 IWMReaderAdvanced5 *This, 5439 WM_READER_CLIENTINFO *pClientInfo); 5440 5441 HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)( 5442 IWMReaderAdvanced5 *This, 5443 DWORD dwOutput, 5444 DWORD *pcbMax); 5445 5446 HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)( 5447 IWMReaderAdvanced5 *This, 5448 WORD wStream, 5449 DWORD *pcbMax); 5450 5451 HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)( 5452 IWMReaderAdvanced5 *This, 5453 QWORD cnsLateness); 5454 5455 /*** IWMReaderAdvanced2 methods ***/ 5456 HRESULT (STDMETHODCALLTYPE *SetPlayMode)( 5457 IWMReaderAdvanced5 *This, 5458 WMT_PLAY_MODE Mode); 5459 5460 HRESULT (STDMETHODCALLTYPE *GetPlayMode)( 5461 IWMReaderAdvanced5 *This, 5462 WMT_PLAY_MODE *pMode); 5463 5464 HRESULT (STDMETHODCALLTYPE *GetBufferProgress)( 5465 IWMReaderAdvanced5 *This, 5466 DWORD *pdwPercent, 5467 QWORD *pcnsBuffering); 5468 5469 HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)( 5470 IWMReaderAdvanced5 *This, 5471 DWORD *pdwPercent, 5472 QWORD *pqwBytesDownloaded, 5473 QWORD *pcnsDownload); 5474 5475 HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)( 5476 IWMReaderAdvanced5 *This, 5477 DWORD *pdwPercent); 5478 5479 HRESULT (STDMETHODCALLTYPE *SaveFileAs)( 5480 IWMReaderAdvanced5 *This, 5481 const WCHAR *pwszFilename); 5482 5483 HRESULT (STDMETHODCALLTYPE *GetProtocolName)( 5484 IWMReaderAdvanced5 *This, 5485 WCHAR *pwszProtocol, 5486 DWORD *pcchProtocol); 5487 5488 HRESULT (STDMETHODCALLTYPE *StartAtMarker)( 5489 IWMReaderAdvanced5 *This, 5490 WORD wMarkerIndex, 5491 QWORD cnsDuration, 5492 float fRate, 5493 void *pvContext); 5494 5495 HRESULT (STDMETHODCALLTYPE *GetOutputSetting)( 5496 IWMReaderAdvanced5 *This, 5497 DWORD dwOutputNum, 5498 LPCWSTR pszName, 5499 WMT_ATTR_DATATYPE *pType, 5500 BYTE *pValue, 5501 WORD *pcbLength); 5502 5503 HRESULT (STDMETHODCALLTYPE *SetOutputSetting)( 5504 IWMReaderAdvanced5 *This, 5505 DWORD dwOutputNum, 5506 LPCWSTR pszName, 5507 WMT_ATTR_DATATYPE Type, 5508 const BYTE *pValue, 5509 WORD cbLength); 5510 5511 HRESULT (STDMETHODCALLTYPE *Preroll)( 5512 IWMReaderAdvanced5 *This, 5513 QWORD cnsStart, 5514 QWORD cnsDuration, 5515 float fRate); 5516 5517 HRESULT (STDMETHODCALLTYPE *SetLogClientID)( 5518 IWMReaderAdvanced5 *This, 5519 WINBOOL fLogClientID); 5520 5521 HRESULT (STDMETHODCALLTYPE *GetLogClientID)( 5522 IWMReaderAdvanced5 *This, 5523 WINBOOL *pfLogClientID); 5524 5525 HRESULT (STDMETHODCALLTYPE *StopBuffering)( 5526 IWMReaderAdvanced5 *This); 5527 5528 HRESULT (STDMETHODCALLTYPE *OpenStream)( 5529 IWMReaderAdvanced5 *This, 5530 IStream *pStream, 5531 IWMReaderCallback *pCallback, 5532 void *pvContext); 5533 5534 /*** IWMReaderAdvanced3 methods ***/ 5535 HRESULT (STDMETHODCALLTYPE *StopNetStreaming)( 5536 IWMReaderAdvanced5 *This); 5537 5538 HRESULT (STDMETHODCALLTYPE *StartAtPosition)( 5539 IWMReaderAdvanced5 *This, 5540 WORD wStreamNum, 5541 void *pvOffsetStart, 5542 void *pvDuration, 5543 WMT_OFFSET_FORMAT dwOffsetFormat, 5544 float fRate, 5545 void *pvContext); 5546 5547 /*** IWMReaderAdvanced4 methods ***/ 5548 HRESULT (STDMETHODCALLTYPE *GetLanguageCount)( 5549 IWMReaderAdvanced5 *This, 5550 DWORD dwOutputNum, 5551 WORD *pwLanguageCount); 5552 5553 HRESULT (STDMETHODCALLTYPE *GetLanguage)( 5554 IWMReaderAdvanced5 *This, 5555 DWORD dwOutputNum, 5556 WORD wLanguage, 5557 WCHAR *pwszLanguageString, 5558 WORD *pcchLanguageStringLength); 5559 5560 HRESULT (STDMETHODCALLTYPE *GetMaxSpeedFactor)( 5561 IWMReaderAdvanced5 *This, 5562 double *pdblFactor); 5563 5564 HRESULT (STDMETHODCALLTYPE *IsUsingFastCache)( 5565 IWMReaderAdvanced5 *This, 5566 WINBOOL *pfUsingFastCache); 5567 5568 HRESULT (STDMETHODCALLTYPE *AddLogParam)( 5569 IWMReaderAdvanced5 *This, 5570 LPCWSTR wszNameSpace, 5571 LPCWSTR wszName, 5572 LPCWSTR wszValue); 5573 5574 HRESULT (STDMETHODCALLTYPE *SendLogParams)( 5575 IWMReaderAdvanced5 *This); 5576 5577 HRESULT (STDMETHODCALLTYPE *CanSaveFileAs)( 5578 IWMReaderAdvanced5 *This, 5579 WINBOOL *pfCanSave); 5580 5581 HRESULT (STDMETHODCALLTYPE *CancelSaveFileAs)( 5582 IWMReaderAdvanced5 *This); 5583 5584 HRESULT (STDMETHODCALLTYPE *GetURL)( 5585 IWMReaderAdvanced5 *This, 5586 WCHAR *pwszURL, 5587 DWORD *pcchURL); 5588 5589 /*** IWMReaderAdvanced5 methods ***/ 5590 HRESULT (STDMETHODCALLTYPE *SetPlayerHook)( 5591 IWMReaderAdvanced5 *This, 5592 DWORD dwOutputNum, 5593 IWMPlayerHook *pHook); 5594 5595 END_INTERFACE 5596 } IWMReaderAdvanced5Vtbl; 5597 5598 interface IWMReaderAdvanced5 { 5599 CONST_VTBL IWMReaderAdvanced5Vtbl* lpVtbl; 5600 }; 5601 5602 #ifdef COBJMACROS 5603 #ifndef WIDL_C_INLINE_WRAPPERS 5604 /*** IUnknown methods ***/ 5605 #define IWMReaderAdvanced5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 5606 #define IWMReaderAdvanced5_AddRef(This) (This)->lpVtbl->AddRef(This) 5607 #define IWMReaderAdvanced5_Release(This) (This)->lpVtbl->Release(This) 5608 /*** IWMReaderAdvanced methods ***/ 5609 #define IWMReaderAdvanced5_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock) 5610 #define IWMReaderAdvanced5_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock) 5611 #define IWMReaderAdvanced5_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime) 5612 #define IWMReaderAdvanced5_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection) 5613 #define IWMReaderAdvanced5_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection) 5614 #define IWMReaderAdvanced5_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) 5615 #define IWMReaderAdvanced5_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection) 5616 #define IWMReaderAdvanced5_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks) 5617 #define IWMReaderAdvanced5_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks) 5618 #define IWMReaderAdvanced5_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) 5619 #define IWMReaderAdvanced5_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) 5620 #define IWMReaderAdvanced5_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate) 5621 #define IWMReaderAdvanced5_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate) 5622 #define IWMReaderAdvanced5_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate) 5623 #define IWMReaderAdvanced5_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate) 5624 #define IWMReaderAdvanced5_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics) 5625 #define IWMReaderAdvanced5_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo) 5626 #define IWMReaderAdvanced5_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax) 5627 #define IWMReaderAdvanced5_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax) 5628 #define IWMReaderAdvanced5_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness) 5629 /*** IWMReaderAdvanced2 methods ***/ 5630 #define IWMReaderAdvanced5_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode) 5631 #define IWMReaderAdvanced5_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode) 5632 #define IWMReaderAdvanced5_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering) 5633 #define IWMReaderAdvanced5_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) 5634 #define IWMReaderAdvanced5_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent) 5635 #define IWMReaderAdvanced5_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename) 5636 #define IWMReaderAdvanced5_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol) 5637 #define IWMReaderAdvanced5_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) 5638 #define IWMReaderAdvanced5_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) 5639 #define IWMReaderAdvanced5_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) 5640 #define IWMReaderAdvanced5_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate) 5641 #define IWMReaderAdvanced5_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID) 5642 #define IWMReaderAdvanced5_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID) 5643 #define IWMReaderAdvanced5_StopBuffering(This) (This)->lpVtbl->StopBuffering(This) 5644 #define IWMReaderAdvanced5_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext) 5645 /*** IWMReaderAdvanced3 methods ***/ 5646 #define IWMReaderAdvanced5_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This) 5647 #define IWMReaderAdvanced5_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) 5648 /*** IWMReaderAdvanced4 methods ***/ 5649 #define IWMReaderAdvanced5_GetLanguageCount(This,dwOutputNum,pwLanguageCount) (This)->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount) 5650 #define IWMReaderAdvanced5_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) (This)->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) 5651 #define IWMReaderAdvanced5_GetMaxSpeedFactor(This,pdblFactor) (This)->lpVtbl->GetMaxSpeedFactor(This,pdblFactor) 5652 #define IWMReaderAdvanced5_IsUsingFastCache(This,pfUsingFastCache) (This)->lpVtbl->IsUsingFastCache(This,pfUsingFastCache) 5653 #define IWMReaderAdvanced5_AddLogParam(This,wszNameSpace,wszName,wszValue) (This)->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue) 5654 #define IWMReaderAdvanced5_SendLogParams(This) (This)->lpVtbl->SendLogParams(This) 5655 #define IWMReaderAdvanced5_CanSaveFileAs(This,pfCanSave) (This)->lpVtbl->CanSaveFileAs(This,pfCanSave) 5656 #define IWMReaderAdvanced5_CancelSaveFileAs(This) (This)->lpVtbl->CancelSaveFileAs(This) 5657 #define IWMReaderAdvanced5_GetURL(This,pwszURL,pcchURL) (This)->lpVtbl->GetURL(This,pwszURL,pcchURL) 5658 /*** IWMReaderAdvanced5 methods ***/ 5659 #define IWMReaderAdvanced5_SetPlayerHook(This,dwOutputNum,pHook) (This)->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook) 5660 #else 5661 /*** IUnknown methods ***/ 5662 static FORCEINLINE HRESULT IWMReaderAdvanced5_QueryInterface(IWMReaderAdvanced5* This,REFIID riid,void **ppvObject) { 5663 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 5664 } 5665 static FORCEINLINE ULONG IWMReaderAdvanced5_AddRef(IWMReaderAdvanced5* This) { 5666 return This->lpVtbl->AddRef(This); 5667 } 5668 static FORCEINLINE ULONG IWMReaderAdvanced5_Release(IWMReaderAdvanced5* This) { 5669 return This->lpVtbl->Release(This); 5670 } 5671 /*** IWMReaderAdvanced methods ***/ 5672 static FORCEINLINE HRESULT IWMReaderAdvanced5_SetUserProvidedClock(IWMReaderAdvanced5* This,WINBOOL fUserClock) { 5673 return This->lpVtbl->SetUserProvidedClock(This,fUserClock); 5674 } 5675 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetUserProvidedClock(IWMReaderAdvanced5* This,WINBOOL *pfUserClock) { 5676 return This->lpVtbl->GetUserProvidedClock(This,pfUserClock); 5677 } 5678 static FORCEINLINE HRESULT IWMReaderAdvanced5_DeliverTime(IWMReaderAdvanced5* This,QWORD cnsTime) { 5679 return This->lpVtbl->DeliverTime(This,cnsTime); 5680 } 5681 static FORCEINLINE HRESULT IWMReaderAdvanced5_SetManualStreamSelection(IWMReaderAdvanced5* This,WINBOOL fSelection) { 5682 return This->lpVtbl->SetManualStreamSelection(This,fSelection); 5683 } 5684 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetManualStreamSelection(IWMReaderAdvanced5* This,WINBOOL *pfSelection) { 5685 return This->lpVtbl->GetManualStreamSelection(This,pfSelection); 5686 } 5687 static FORCEINLINE HRESULT IWMReaderAdvanced5_SetStreamsSelected(IWMReaderAdvanced5* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) { 5688 return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections); 5689 } 5690 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetStreamSelected(IWMReaderAdvanced5* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) { 5691 return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection); 5692 } 5693 static FORCEINLINE HRESULT IWMReaderAdvanced5_SetReceiveSelectionCallbacks(IWMReaderAdvanced5* This,WINBOOL fGetCallbacks) { 5694 return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks); 5695 } 5696 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetReceiveSelectionCallbacks(IWMReaderAdvanced5* This,WINBOOL *pfGetCallbacks) { 5697 return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks); 5698 } 5699 static FORCEINLINE HRESULT IWMReaderAdvanced5_SetReceiveStreamSamples(IWMReaderAdvanced5* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) { 5700 return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples); 5701 } 5702 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetReceiveStreamSamples(IWMReaderAdvanced5* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) { 5703 return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples); 5704 } 5705 static FORCEINLINE HRESULT IWMReaderAdvanced5_SetAllocateForOutput(IWMReaderAdvanced5* This,DWORD dwOutputNum,WINBOOL fAllocate) { 5706 return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate); 5707 } 5708 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetAllocateForOutput(IWMReaderAdvanced5* This,DWORD dwOutputNum,WINBOOL *pfAllocate) { 5709 return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate); 5710 } 5711 static FORCEINLINE HRESULT IWMReaderAdvanced5_SetAllocateForStream(IWMReaderAdvanced5* This,WORD wStreamNum,WINBOOL fAllocate) { 5712 return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate); 5713 } 5714 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetAllocateForStream(IWMReaderAdvanced5* This,WORD dwStreamNum,WINBOOL *pfAllocate) { 5715 return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate); 5716 } 5717 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetStatistics(IWMReaderAdvanced5* This,WM_READER_STATISTICS *pStatistics) { 5718 return This->lpVtbl->GetStatistics(This,pStatistics); 5719 } 5720 static FORCEINLINE HRESULT IWMReaderAdvanced5_SetClientInfo(IWMReaderAdvanced5* This,WM_READER_CLIENTINFO *pClientInfo) { 5721 return This->lpVtbl->SetClientInfo(This,pClientInfo); 5722 } 5723 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetMaxOutputSampleSize(IWMReaderAdvanced5* This,DWORD dwOutput,DWORD *pcbMax) { 5724 return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax); 5725 } 5726 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetMaxStreamSampleSize(IWMReaderAdvanced5* This,WORD wStream,DWORD *pcbMax) { 5727 return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax); 5728 } 5729 static FORCEINLINE HRESULT IWMReaderAdvanced5_NotifyLateDelivery(IWMReaderAdvanced5* This,QWORD cnsLateness) { 5730 return This->lpVtbl->NotifyLateDelivery(This,cnsLateness); 5731 } 5732 /*** IWMReaderAdvanced2 methods ***/ 5733 static FORCEINLINE HRESULT IWMReaderAdvanced5_SetPlayMode(IWMReaderAdvanced5* This,WMT_PLAY_MODE Mode) { 5734 return This->lpVtbl->SetPlayMode(This,Mode); 5735 } 5736 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetPlayMode(IWMReaderAdvanced5* This,WMT_PLAY_MODE *pMode) { 5737 return This->lpVtbl->GetPlayMode(This,pMode); 5738 } 5739 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetBufferProgress(IWMReaderAdvanced5* This,DWORD *pdwPercent,QWORD *pcnsBuffering) { 5740 return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering); 5741 } 5742 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetDownloadProgress(IWMReaderAdvanced5* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) { 5743 return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload); 5744 } 5745 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetSaveAsProgress(IWMReaderAdvanced5* This,DWORD *pdwPercent) { 5746 return This->lpVtbl->GetSaveAsProgress(This,pdwPercent); 5747 } 5748 static FORCEINLINE HRESULT IWMReaderAdvanced5_SaveFileAs(IWMReaderAdvanced5* This,const WCHAR *pwszFilename) { 5749 return This->lpVtbl->SaveFileAs(This,pwszFilename); 5750 } 5751 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetProtocolName(IWMReaderAdvanced5* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) { 5752 return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol); 5753 } 5754 static FORCEINLINE HRESULT IWMReaderAdvanced5_StartAtMarker(IWMReaderAdvanced5* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) { 5755 return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext); 5756 } 5757 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetOutputSetting(IWMReaderAdvanced5* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { 5758 return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength); 5759 } 5760 static FORCEINLINE HRESULT IWMReaderAdvanced5_SetOutputSetting(IWMReaderAdvanced5* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { 5761 return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength); 5762 } 5763 static FORCEINLINE HRESULT IWMReaderAdvanced5_Preroll(IWMReaderAdvanced5* This,QWORD cnsStart,QWORD cnsDuration,float fRate) { 5764 return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate); 5765 } 5766 static FORCEINLINE HRESULT IWMReaderAdvanced5_SetLogClientID(IWMReaderAdvanced5* This,WINBOOL fLogClientID) { 5767 return This->lpVtbl->SetLogClientID(This,fLogClientID); 5768 } 5769 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetLogClientID(IWMReaderAdvanced5* This,WINBOOL *pfLogClientID) { 5770 return This->lpVtbl->GetLogClientID(This,pfLogClientID); 5771 } 5772 static FORCEINLINE HRESULT IWMReaderAdvanced5_StopBuffering(IWMReaderAdvanced5* This) { 5773 return This->lpVtbl->StopBuffering(This); 5774 } 5775 static FORCEINLINE HRESULT IWMReaderAdvanced5_OpenStream(IWMReaderAdvanced5* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) { 5776 return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext); 5777 } 5778 /*** IWMReaderAdvanced3 methods ***/ 5779 static FORCEINLINE HRESULT IWMReaderAdvanced5_StopNetStreaming(IWMReaderAdvanced5* This) { 5780 return This->lpVtbl->StopNetStreaming(This); 5781 } 5782 static FORCEINLINE HRESULT IWMReaderAdvanced5_StartAtPosition(IWMReaderAdvanced5* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) { 5783 return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext); 5784 } 5785 /*** IWMReaderAdvanced4 methods ***/ 5786 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetLanguageCount(IWMReaderAdvanced5* This,DWORD dwOutputNum,WORD *pwLanguageCount) { 5787 return This->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount); 5788 } 5789 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetLanguage(IWMReaderAdvanced5* This,DWORD dwOutputNum,WORD wLanguage,WCHAR *pwszLanguageString,WORD *pcchLanguageStringLength) { 5790 return This->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength); 5791 } 5792 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetMaxSpeedFactor(IWMReaderAdvanced5* This,double *pdblFactor) { 5793 return This->lpVtbl->GetMaxSpeedFactor(This,pdblFactor); 5794 } 5795 static FORCEINLINE HRESULT IWMReaderAdvanced5_IsUsingFastCache(IWMReaderAdvanced5* This,WINBOOL *pfUsingFastCache) { 5796 return This->lpVtbl->IsUsingFastCache(This,pfUsingFastCache); 5797 } 5798 static FORCEINLINE HRESULT IWMReaderAdvanced5_AddLogParam(IWMReaderAdvanced5* This,LPCWSTR wszNameSpace,LPCWSTR wszName,LPCWSTR wszValue) { 5799 return This->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue); 5800 } 5801 static FORCEINLINE HRESULT IWMReaderAdvanced5_SendLogParams(IWMReaderAdvanced5* This) { 5802 return This->lpVtbl->SendLogParams(This); 5803 } 5804 static FORCEINLINE HRESULT IWMReaderAdvanced5_CanSaveFileAs(IWMReaderAdvanced5* This,WINBOOL *pfCanSave) { 5805 return This->lpVtbl->CanSaveFileAs(This,pfCanSave); 5806 } 5807 static FORCEINLINE HRESULT IWMReaderAdvanced5_CancelSaveFileAs(IWMReaderAdvanced5* This) { 5808 return This->lpVtbl->CancelSaveFileAs(This); 5809 } 5810 static FORCEINLINE HRESULT IWMReaderAdvanced5_GetURL(IWMReaderAdvanced5* This,WCHAR *pwszURL,DWORD *pcchURL) { 5811 return This->lpVtbl->GetURL(This,pwszURL,pcchURL); 5812 } 5813 /*** IWMReaderAdvanced5 methods ***/ 5814 static FORCEINLINE HRESULT IWMReaderAdvanced5_SetPlayerHook(IWMReaderAdvanced5* This,DWORD dwOutputNum,IWMPlayerHook *pHook) { 5815 return This->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook); 5816 } 5817 #endif 5818 #endif 5819 5820 #endif 5821 5822 5823 #endif /* __IWMReaderAdvanced5_INTERFACE_DEFINED__ */ 5824 5825 /***************************************************************************** 5826 * IWMReaderAdvanced6 interface 5827 */ 5828 #ifndef __IWMReaderAdvanced6_INTERFACE_DEFINED__ 5829 #define __IWMReaderAdvanced6_INTERFACE_DEFINED__ 5830 5831 DEFINE_GUID(IID_IWMReaderAdvanced6, 0x18a2e7f8, 0x428f, 0x4acd, 0x8a,0x00, 0xe6,0x46,0x39,0xbc,0x93,0xde); 5832 #if defined(__cplusplus) && !defined(CINTERFACE) 5833 MIDL_INTERFACE("18a2e7f8-428f-4acd-8a00-e64639bc93de") 5834 IWMReaderAdvanced6 : public IWMReaderAdvanced5 5835 { 5836 virtual HRESULT STDMETHODCALLTYPE SetProtectStreamSamples( 5837 BYTE *pbCertificate, 5838 DWORD cbCertificate, 5839 DWORD dwCertificateType, 5840 DWORD dwFlags, 5841 BYTE *pbInitializationVector, 5842 DWORD *pcbInitializationVector) = 0; 5843 5844 }; 5845 #ifdef __CRT_UUID_DECL 5846 __CRT_UUID_DECL(IWMReaderAdvanced6, 0x18a2e7f8, 0x428f, 0x4acd, 0x8a,0x00, 0xe6,0x46,0x39,0xbc,0x93,0xde) 5847 #endif 5848 #else 5849 typedef struct IWMReaderAdvanced6Vtbl { 5850 BEGIN_INTERFACE 5851 5852 /*** IUnknown methods ***/ 5853 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 5854 IWMReaderAdvanced6 *This, 5855 REFIID riid, 5856 void **ppvObject); 5857 5858 ULONG (STDMETHODCALLTYPE *AddRef)( 5859 IWMReaderAdvanced6 *This); 5860 5861 ULONG (STDMETHODCALLTYPE *Release)( 5862 IWMReaderAdvanced6 *This); 5863 5864 /*** IWMReaderAdvanced methods ***/ 5865 HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)( 5866 IWMReaderAdvanced6 *This, 5867 WINBOOL fUserClock); 5868 5869 HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)( 5870 IWMReaderAdvanced6 *This, 5871 WINBOOL *pfUserClock); 5872 5873 HRESULT (STDMETHODCALLTYPE *DeliverTime)( 5874 IWMReaderAdvanced6 *This, 5875 QWORD cnsTime); 5876 5877 HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)( 5878 IWMReaderAdvanced6 *This, 5879 WINBOOL fSelection); 5880 5881 HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)( 5882 IWMReaderAdvanced6 *This, 5883 WINBOOL *pfSelection); 5884 5885 HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)( 5886 IWMReaderAdvanced6 *This, 5887 WORD cStreamCount, 5888 WORD *pwStreamNumbers, 5889 WMT_STREAM_SELECTION *pSelections); 5890 5891 HRESULT (STDMETHODCALLTYPE *GetStreamSelected)( 5892 IWMReaderAdvanced6 *This, 5893 WORD wStreamNum, 5894 WMT_STREAM_SELECTION *pSelection); 5895 5896 HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)( 5897 IWMReaderAdvanced6 *This, 5898 WINBOOL fGetCallbacks); 5899 5900 HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)( 5901 IWMReaderAdvanced6 *This, 5902 WINBOOL *pfGetCallbacks); 5903 5904 HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)( 5905 IWMReaderAdvanced6 *This, 5906 WORD wStreamNum, 5907 WINBOOL fReceiveStreamSamples); 5908 5909 HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)( 5910 IWMReaderAdvanced6 *This, 5911 WORD wStreamNum, 5912 WINBOOL *pfReceiveStreamSamples); 5913 5914 HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)( 5915 IWMReaderAdvanced6 *This, 5916 DWORD dwOutputNum, 5917 WINBOOL fAllocate); 5918 5919 HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)( 5920 IWMReaderAdvanced6 *This, 5921 DWORD dwOutputNum, 5922 WINBOOL *pfAllocate); 5923 5924 HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)( 5925 IWMReaderAdvanced6 *This, 5926 WORD wStreamNum, 5927 WINBOOL fAllocate); 5928 5929 HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)( 5930 IWMReaderAdvanced6 *This, 5931 WORD dwStreamNum, 5932 WINBOOL *pfAllocate); 5933 5934 HRESULT (STDMETHODCALLTYPE *GetStatistics)( 5935 IWMReaderAdvanced6 *This, 5936 WM_READER_STATISTICS *pStatistics); 5937 5938 HRESULT (STDMETHODCALLTYPE *SetClientInfo)( 5939 IWMReaderAdvanced6 *This, 5940 WM_READER_CLIENTINFO *pClientInfo); 5941 5942 HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)( 5943 IWMReaderAdvanced6 *This, 5944 DWORD dwOutput, 5945 DWORD *pcbMax); 5946 5947 HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)( 5948 IWMReaderAdvanced6 *This, 5949 WORD wStream, 5950 DWORD *pcbMax); 5951 5952 HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)( 5953 IWMReaderAdvanced6 *This, 5954 QWORD cnsLateness); 5955 5956 /*** IWMReaderAdvanced2 methods ***/ 5957 HRESULT (STDMETHODCALLTYPE *SetPlayMode)( 5958 IWMReaderAdvanced6 *This, 5959 WMT_PLAY_MODE Mode); 5960 5961 HRESULT (STDMETHODCALLTYPE *GetPlayMode)( 5962 IWMReaderAdvanced6 *This, 5963 WMT_PLAY_MODE *pMode); 5964 5965 HRESULT (STDMETHODCALLTYPE *GetBufferProgress)( 5966 IWMReaderAdvanced6 *This, 5967 DWORD *pdwPercent, 5968 QWORD *pcnsBuffering); 5969 5970 HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)( 5971 IWMReaderAdvanced6 *This, 5972 DWORD *pdwPercent, 5973 QWORD *pqwBytesDownloaded, 5974 QWORD *pcnsDownload); 5975 5976 HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)( 5977 IWMReaderAdvanced6 *This, 5978 DWORD *pdwPercent); 5979 5980 HRESULT (STDMETHODCALLTYPE *SaveFileAs)( 5981 IWMReaderAdvanced6 *This, 5982 const WCHAR *pwszFilename); 5983 5984 HRESULT (STDMETHODCALLTYPE *GetProtocolName)( 5985 IWMReaderAdvanced6 *This, 5986 WCHAR *pwszProtocol, 5987 DWORD *pcchProtocol); 5988 5989 HRESULT (STDMETHODCALLTYPE *StartAtMarker)( 5990 IWMReaderAdvanced6 *This, 5991 WORD wMarkerIndex, 5992 QWORD cnsDuration, 5993 float fRate, 5994 void *pvContext); 5995 5996 HRESULT (STDMETHODCALLTYPE *GetOutputSetting)( 5997 IWMReaderAdvanced6 *This, 5998 DWORD dwOutputNum, 5999 LPCWSTR pszName, 6000 WMT_ATTR_DATATYPE *pType, 6001 BYTE *pValue, 6002 WORD *pcbLength); 6003 6004 HRESULT (STDMETHODCALLTYPE *SetOutputSetting)( 6005 IWMReaderAdvanced6 *This, 6006 DWORD dwOutputNum, 6007 LPCWSTR pszName, 6008 WMT_ATTR_DATATYPE Type, 6009 const BYTE *pValue, 6010 WORD cbLength); 6011 6012 HRESULT (STDMETHODCALLTYPE *Preroll)( 6013 IWMReaderAdvanced6 *This, 6014 QWORD cnsStart, 6015 QWORD cnsDuration, 6016 float fRate); 6017 6018 HRESULT (STDMETHODCALLTYPE *SetLogClientID)( 6019 IWMReaderAdvanced6 *This, 6020 WINBOOL fLogClientID); 6021 6022 HRESULT (STDMETHODCALLTYPE *GetLogClientID)( 6023 IWMReaderAdvanced6 *This, 6024 WINBOOL *pfLogClientID); 6025 6026 HRESULT (STDMETHODCALLTYPE *StopBuffering)( 6027 IWMReaderAdvanced6 *This); 6028 6029 HRESULT (STDMETHODCALLTYPE *OpenStream)( 6030 IWMReaderAdvanced6 *This, 6031 IStream *pStream, 6032 IWMReaderCallback *pCallback, 6033 void *pvContext); 6034 6035 /*** IWMReaderAdvanced3 methods ***/ 6036 HRESULT (STDMETHODCALLTYPE *StopNetStreaming)( 6037 IWMReaderAdvanced6 *This); 6038 6039 HRESULT (STDMETHODCALLTYPE *StartAtPosition)( 6040 IWMReaderAdvanced6 *This, 6041 WORD wStreamNum, 6042 void *pvOffsetStart, 6043 void *pvDuration, 6044 WMT_OFFSET_FORMAT dwOffsetFormat, 6045 float fRate, 6046 void *pvContext); 6047 6048 /*** IWMReaderAdvanced4 methods ***/ 6049 HRESULT (STDMETHODCALLTYPE *GetLanguageCount)( 6050 IWMReaderAdvanced6 *This, 6051 DWORD dwOutputNum, 6052 WORD *pwLanguageCount); 6053 6054 HRESULT (STDMETHODCALLTYPE *GetLanguage)( 6055 IWMReaderAdvanced6 *This, 6056 DWORD dwOutputNum, 6057 WORD wLanguage, 6058 WCHAR *pwszLanguageString, 6059 WORD *pcchLanguageStringLength); 6060 6061 HRESULT (STDMETHODCALLTYPE *GetMaxSpeedFactor)( 6062 IWMReaderAdvanced6 *This, 6063 double *pdblFactor); 6064 6065 HRESULT (STDMETHODCALLTYPE *IsUsingFastCache)( 6066 IWMReaderAdvanced6 *This, 6067 WINBOOL *pfUsingFastCache); 6068 6069 HRESULT (STDMETHODCALLTYPE *AddLogParam)( 6070 IWMReaderAdvanced6 *This, 6071 LPCWSTR wszNameSpace, 6072 LPCWSTR wszName, 6073 LPCWSTR wszValue); 6074 6075 HRESULT (STDMETHODCALLTYPE *SendLogParams)( 6076 IWMReaderAdvanced6 *This); 6077 6078 HRESULT (STDMETHODCALLTYPE *CanSaveFileAs)( 6079 IWMReaderAdvanced6 *This, 6080 WINBOOL *pfCanSave); 6081 6082 HRESULT (STDMETHODCALLTYPE *CancelSaveFileAs)( 6083 IWMReaderAdvanced6 *This); 6084 6085 HRESULT (STDMETHODCALLTYPE *GetURL)( 6086 IWMReaderAdvanced6 *This, 6087 WCHAR *pwszURL, 6088 DWORD *pcchURL); 6089 6090 /*** IWMReaderAdvanced5 methods ***/ 6091 HRESULT (STDMETHODCALLTYPE *SetPlayerHook)( 6092 IWMReaderAdvanced6 *This, 6093 DWORD dwOutputNum, 6094 IWMPlayerHook *pHook); 6095 6096 /*** IWMReaderAdvanced6 methods ***/ 6097 HRESULT (STDMETHODCALLTYPE *SetProtectStreamSamples)( 6098 IWMReaderAdvanced6 *This, 6099 BYTE *pbCertificate, 6100 DWORD cbCertificate, 6101 DWORD dwCertificateType, 6102 DWORD dwFlags, 6103 BYTE *pbInitializationVector, 6104 DWORD *pcbInitializationVector); 6105 6106 END_INTERFACE 6107 } IWMReaderAdvanced6Vtbl; 6108 6109 interface IWMReaderAdvanced6 { 6110 CONST_VTBL IWMReaderAdvanced6Vtbl* lpVtbl; 6111 }; 6112 6113 #ifdef COBJMACROS 6114 #ifndef WIDL_C_INLINE_WRAPPERS 6115 /*** IUnknown methods ***/ 6116 #define IWMReaderAdvanced6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 6117 #define IWMReaderAdvanced6_AddRef(This) (This)->lpVtbl->AddRef(This) 6118 #define IWMReaderAdvanced6_Release(This) (This)->lpVtbl->Release(This) 6119 /*** IWMReaderAdvanced methods ***/ 6120 #define IWMReaderAdvanced6_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock) 6121 #define IWMReaderAdvanced6_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock) 6122 #define IWMReaderAdvanced6_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime) 6123 #define IWMReaderAdvanced6_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection) 6124 #define IWMReaderAdvanced6_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection) 6125 #define IWMReaderAdvanced6_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) 6126 #define IWMReaderAdvanced6_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection) 6127 #define IWMReaderAdvanced6_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks) 6128 #define IWMReaderAdvanced6_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks) 6129 #define IWMReaderAdvanced6_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) 6130 #define IWMReaderAdvanced6_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) 6131 #define IWMReaderAdvanced6_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate) 6132 #define IWMReaderAdvanced6_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate) 6133 #define IWMReaderAdvanced6_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate) 6134 #define IWMReaderAdvanced6_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate) 6135 #define IWMReaderAdvanced6_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics) 6136 #define IWMReaderAdvanced6_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo) 6137 #define IWMReaderAdvanced6_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax) 6138 #define IWMReaderAdvanced6_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax) 6139 #define IWMReaderAdvanced6_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness) 6140 /*** IWMReaderAdvanced2 methods ***/ 6141 #define IWMReaderAdvanced6_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode) 6142 #define IWMReaderAdvanced6_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode) 6143 #define IWMReaderAdvanced6_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering) 6144 #define IWMReaderAdvanced6_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) 6145 #define IWMReaderAdvanced6_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent) 6146 #define IWMReaderAdvanced6_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename) 6147 #define IWMReaderAdvanced6_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol) 6148 #define IWMReaderAdvanced6_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) 6149 #define IWMReaderAdvanced6_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) 6150 #define IWMReaderAdvanced6_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) 6151 #define IWMReaderAdvanced6_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate) 6152 #define IWMReaderAdvanced6_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID) 6153 #define IWMReaderAdvanced6_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID) 6154 #define IWMReaderAdvanced6_StopBuffering(This) (This)->lpVtbl->StopBuffering(This) 6155 #define IWMReaderAdvanced6_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext) 6156 /*** IWMReaderAdvanced3 methods ***/ 6157 #define IWMReaderAdvanced6_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This) 6158 #define IWMReaderAdvanced6_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) 6159 /*** IWMReaderAdvanced4 methods ***/ 6160 #define IWMReaderAdvanced6_GetLanguageCount(This,dwOutputNum,pwLanguageCount) (This)->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount) 6161 #define IWMReaderAdvanced6_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) (This)->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) 6162 #define IWMReaderAdvanced6_GetMaxSpeedFactor(This,pdblFactor) (This)->lpVtbl->GetMaxSpeedFactor(This,pdblFactor) 6163 #define IWMReaderAdvanced6_IsUsingFastCache(This,pfUsingFastCache) (This)->lpVtbl->IsUsingFastCache(This,pfUsingFastCache) 6164 #define IWMReaderAdvanced6_AddLogParam(This,wszNameSpace,wszName,wszValue) (This)->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue) 6165 #define IWMReaderAdvanced6_SendLogParams(This) (This)->lpVtbl->SendLogParams(This) 6166 #define IWMReaderAdvanced6_CanSaveFileAs(This,pfCanSave) (This)->lpVtbl->CanSaveFileAs(This,pfCanSave) 6167 #define IWMReaderAdvanced6_CancelSaveFileAs(This) (This)->lpVtbl->CancelSaveFileAs(This) 6168 #define IWMReaderAdvanced6_GetURL(This,pwszURL,pcchURL) (This)->lpVtbl->GetURL(This,pwszURL,pcchURL) 6169 /*** IWMReaderAdvanced5 methods ***/ 6170 #define IWMReaderAdvanced6_SetPlayerHook(This,dwOutputNum,pHook) (This)->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook) 6171 /*** IWMReaderAdvanced6 methods ***/ 6172 #define IWMReaderAdvanced6_SetProtectStreamSamples(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector) (This)->lpVtbl->SetProtectStreamSamples(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector) 6173 #else 6174 /*** IUnknown methods ***/ 6175 static FORCEINLINE HRESULT IWMReaderAdvanced6_QueryInterface(IWMReaderAdvanced6* This,REFIID riid,void **ppvObject) { 6176 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 6177 } 6178 static FORCEINLINE ULONG IWMReaderAdvanced6_AddRef(IWMReaderAdvanced6* This) { 6179 return This->lpVtbl->AddRef(This); 6180 } 6181 static FORCEINLINE ULONG IWMReaderAdvanced6_Release(IWMReaderAdvanced6* This) { 6182 return This->lpVtbl->Release(This); 6183 } 6184 /*** IWMReaderAdvanced methods ***/ 6185 static FORCEINLINE HRESULT IWMReaderAdvanced6_SetUserProvidedClock(IWMReaderAdvanced6* This,WINBOOL fUserClock) { 6186 return This->lpVtbl->SetUserProvidedClock(This,fUserClock); 6187 } 6188 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetUserProvidedClock(IWMReaderAdvanced6* This,WINBOOL *pfUserClock) { 6189 return This->lpVtbl->GetUserProvidedClock(This,pfUserClock); 6190 } 6191 static FORCEINLINE HRESULT IWMReaderAdvanced6_DeliverTime(IWMReaderAdvanced6* This,QWORD cnsTime) { 6192 return This->lpVtbl->DeliverTime(This,cnsTime); 6193 } 6194 static FORCEINLINE HRESULT IWMReaderAdvanced6_SetManualStreamSelection(IWMReaderAdvanced6* This,WINBOOL fSelection) { 6195 return This->lpVtbl->SetManualStreamSelection(This,fSelection); 6196 } 6197 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetManualStreamSelection(IWMReaderAdvanced6* This,WINBOOL *pfSelection) { 6198 return This->lpVtbl->GetManualStreamSelection(This,pfSelection); 6199 } 6200 static FORCEINLINE HRESULT IWMReaderAdvanced6_SetStreamsSelected(IWMReaderAdvanced6* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) { 6201 return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections); 6202 } 6203 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetStreamSelected(IWMReaderAdvanced6* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) { 6204 return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection); 6205 } 6206 static FORCEINLINE HRESULT IWMReaderAdvanced6_SetReceiveSelectionCallbacks(IWMReaderAdvanced6* This,WINBOOL fGetCallbacks) { 6207 return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks); 6208 } 6209 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetReceiveSelectionCallbacks(IWMReaderAdvanced6* This,WINBOOL *pfGetCallbacks) { 6210 return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks); 6211 } 6212 static FORCEINLINE HRESULT IWMReaderAdvanced6_SetReceiveStreamSamples(IWMReaderAdvanced6* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) { 6213 return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples); 6214 } 6215 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetReceiveStreamSamples(IWMReaderAdvanced6* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) { 6216 return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples); 6217 } 6218 static FORCEINLINE HRESULT IWMReaderAdvanced6_SetAllocateForOutput(IWMReaderAdvanced6* This,DWORD dwOutputNum,WINBOOL fAllocate) { 6219 return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate); 6220 } 6221 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetAllocateForOutput(IWMReaderAdvanced6* This,DWORD dwOutputNum,WINBOOL *pfAllocate) { 6222 return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate); 6223 } 6224 static FORCEINLINE HRESULT IWMReaderAdvanced6_SetAllocateForStream(IWMReaderAdvanced6* This,WORD wStreamNum,WINBOOL fAllocate) { 6225 return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate); 6226 } 6227 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetAllocateForStream(IWMReaderAdvanced6* This,WORD dwStreamNum,WINBOOL *pfAllocate) { 6228 return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate); 6229 } 6230 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetStatistics(IWMReaderAdvanced6* This,WM_READER_STATISTICS *pStatistics) { 6231 return This->lpVtbl->GetStatistics(This,pStatistics); 6232 } 6233 static FORCEINLINE HRESULT IWMReaderAdvanced6_SetClientInfo(IWMReaderAdvanced6* This,WM_READER_CLIENTINFO *pClientInfo) { 6234 return This->lpVtbl->SetClientInfo(This,pClientInfo); 6235 } 6236 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetMaxOutputSampleSize(IWMReaderAdvanced6* This,DWORD dwOutput,DWORD *pcbMax) { 6237 return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax); 6238 } 6239 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetMaxStreamSampleSize(IWMReaderAdvanced6* This,WORD wStream,DWORD *pcbMax) { 6240 return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax); 6241 } 6242 static FORCEINLINE HRESULT IWMReaderAdvanced6_NotifyLateDelivery(IWMReaderAdvanced6* This,QWORD cnsLateness) { 6243 return This->lpVtbl->NotifyLateDelivery(This,cnsLateness); 6244 } 6245 /*** IWMReaderAdvanced2 methods ***/ 6246 static FORCEINLINE HRESULT IWMReaderAdvanced6_SetPlayMode(IWMReaderAdvanced6* This,WMT_PLAY_MODE Mode) { 6247 return This->lpVtbl->SetPlayMode(This,Mode); 6248 } 6249 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetPlayMode(IWMReaderAdvanced6* This,WMT_PLAY_MODE *pMode) { 6250 return This->lpVtbl->GetPlayMode(This,pMode); 6251 } 6252 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetBufferProgress(IWMReaderAdvanced6* This,DWORD *pdwPercent,QWORD *pcnsBuffering) { 6253 return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering); 6254 } 6255 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetDownloadProgress(IWMReaderAdvanced6* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) { 6256 return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload); 6257 } 6258 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetSaveAsProgress(IWMReaderAdvanced6* This,DWORD *pdwPercent) { 6259 return This->lpVtbl->GetSaveAsProgress(This,pdwPercent); 6260 } 6261 static FORCEINLINE HRESULT IWMReaderAdvanced6_SaveFileAs(IWMReaderAdvanced6* This,const WCHAR *pwszFilename) { 6262 return This->lpVtbl->SaveFileAs(This,pwszFilename); 6263 } 6264 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetProtocolName(IWMReaderAdvanced6* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) { 6265 return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol); 6266 } 6267 static FORCEINLINE HRESULT IWMReaderAdvanced6_StartAtMarker(IWMReaderAdvanced6* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) { 6268 return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext); 6269 } 6270 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetOutputSetting(IWMReaderAdvanced6* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { 6271 return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength); 6272 } 6273 static FORCEINLINE HRESULT IWMReaderAdvanced6_SetOutputSetting(IWMReaderAdvanced6* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { 6274 return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength); 6275 } 6276 static FORCEINLINE HRESULT IWMReaderAdvanced6_Preroll(IWMReaderAdvanced6* This,QWORD cnsStart,QWORD cnsDuration,float fRate) { 6277 return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate); 6278 } 6279 static FORCEINLINE HRESULT IWMReaderAdvanced6_SetLogClientID(IWMReaderAdvanced6* This,WINBOOL fLogClientID) { 6280 return This->lpVtbl->SetLogClientID(This,fLogClientID); 6281 } 6282 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetLogClientID(IWMReaderAdvanced6* This,WINBOOL *pfLogClientID) { 6283 return This->lpVtbl->GetLogClientID(This,pfLogClientID); 6284 } 6285 static FORCEINLINE HRESULT IWMReaderAdvanced6_StopBuffering(IWMReaderAdvanced6* This) { 6286 return This->lpVtbl->StopBuffering(This); 6287 } 6288 static FORCEINLINE HRESULT IWMReaderAdvanced6_OpenStream(IWMReaderAdvanced6* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) { 6289 return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext); 6290 } 6291 /*** IWMReaderAdvanced3 methods ***/ 6292 static FORCEINLINE HRESULT IWMReaderAdvanced6_StopNetStreaming(IWMReaderAdvanced6* This) { 6293 return This->lpVtbl->StopNetStreaming(This); 6294 } 6295 static FORCEINLINE HRESULT IWMReaderAdvanced6_StartAtPosition(IWMReaderAdvanced6* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) { 6296 return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext); 6297 } 6298 /*** IWMReaderAdvanced4 methods ***/ 6299 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetLanguageCount(IWMReaderAdvanced6* This,DWORD dwOutputNum,WORD *pwLanguageCount) { 6300 return This->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount); 6301 } 6302 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetLanguage(IWMReaderAdvanced6* This,DWORD dwOutputNum,WORD wLanguage,WCHAR *pwszLanguageString,WORD *pcchLanguageStringLength) { 6303 return This->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength); 6304 } 6305 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetMaxSpeedFactor(IWMReaderAdvanced6* This,double *pdblFactor) { 6306 return This->lpVtbl->GetMaxSpeedFactor(This,pdblFactor); 6307 } 6308 static FORCEINLINE HRESULT IWMReaderAdvanced6_IsUsingFastCache(IWMReaderAdvanced6* This,WINBOOL *pfUsingFastCache) { 6309 return This->lpVtbl->IsUsingFastCache(This,pfUsingFastCache); 6310 } 6311 static FORCEINLINE HRESULT IWMReaderAdvanced6_AddLogParam(IWMReaderAdvanced6* This,LPCWSTR wszNameSpace,LPCWSTR wszName,LPCWSTR wszValue) { 6312 return This->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue); 6313 } 6314 static FORCEINLINE HRESULT IWMReaderAdvanced6_SendLogParams(IWMReaderAdvanced6* This) { 6315 return This->lpVtbl->SendLogParams(This); 6316 } 6317 static FORCEINLINE HRESULT IWMReaderAdvanced6_CanSaveFileAs(IWMReaderAdvanced6* This,WINBOOL *pfCanSave) { 6318 return This->lpVtbl->CanSaveFileAs(This,pfCanSave); 6319 } 6320 static FORCEINLINE HRESULT IWMReaderAdvanced6_CancelSaveFileAs(IWMReaderAdvanced6* This) { 6321 return This->lpVtbl->CancelSaveFileAs(This); 6322 } 6323 static FORCEINLINE HRESULT IWMReaderAdvanced6_GetURL(IWMReaderAdvanced6* This,WCHAR *pwszURL,DWORD *pcchURL) { 6324 return This->lpVtbl->GetURL(This,pwszURL,pcchURL); 6325 } 6326 /*** IWMReaderAdvanced5 methods ***/ 6327 static FORCEINLINE HRESULT IWMReaderAdvanced6_SetPlayerHook(IWMReaderAdvanced6* This,DWORD dwOutputNum,IWMPlayerHook *pHook) { 6328 return This->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook); 6329 } 6330 /*** IWMReaderAdvanced6 methods ***/ 6331 static FORCEINLINE HRESULT IWMReaderAdvanced6_SetProtectStreamSamples(IWMReaderAdvanced6* This,BYTE *pbCertificate,DWORD cbCertificate,DWORD dwCertificateType,DWORD dwFlags,BYTE *pbInitializationVector,DWORD *pcbInitializationVector) { 6332 return This->lpVtbl->SetProtectStreamSamples(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector); 6333 } 6334 #endif 6335 #endif 6336 6337 #endif 6338 6339 6340 #endif /* __IWMReaderAdvanced6_INTERFACE_DEFINED__ */ 6341 6342 /***************************************************************************** 6343 * IWMSyncReader interface 6344 */ 6345 #ifndef __IWMSyncReader_INTERFACE_DEFINED__ 6346 #define __IWMSyncReader_INTERFACE_DEFINED__ 6347 6348 DEFINE_GUID(IID_IWMSyncReader, 0x9397f121, 0x7705, 0x4dc9, 0xb0,0x49, 0x98,0xb6,0x98,0x18,0x84,0x14); 6349 #if defined(__cplusplus) && !defined(CINTERFACE) 6350 MIDL_INTERFACE("9397f121-7705-4dc9-b049-98b698188414") 6351 IWMSyncReader : public IUnknown 6352 { 6353 virtual HRESULT STDMETHODCALLTYPE Open( 6354 const WCHAR *pwszFilename) = 0; 6355 6356 virtual HRESULT STDMETHODCALLTYPE Close( 6357 ) = 0; 6358 6359 virtual HRESULT STDMETHODCALLTYPE SetRange( 6360 QWORD cnsStartTime, 6361 LONGLONG cnsDuration) = 0; 6362 6363 virtual HRESULT STDMETHODCALLTYPE SetRangeByFrame( 6364 WORD wStreamNum, 6365 QWORD qwFrameNumber, 6366 LONGLONG cFramesToRead) = 0; 6367 6368 virtual HRESULT STDMETHODCALLTYPE GetNextSample( 6369 WORD wStreamNum, 6370 INSSBuffer **ppSample, 6371 QWORD *pcnsSampleTime, 6372 QWORD *pcnsDuration, 6373 DWORD *pdwFlags, 6374 DWORD *pdwOutputNum, 6375 WORD *pwStreamNum) = 0; 6376 6377 virtual HRESULT STDMETHODCALLTYPE SetStreamsSelected( 6378 WORD cStreamCount, 6379 WORD *pwStreamNumbers, 6380 WMT_STREAM_SELECTION *pSelections) = 0; 6381 6382 virtual HRESULT STDMETHODCALLTYPE GetStreamSelected( 6383 WORD wStreamNum, 6384 WMT_STREAM_SELECTION *pSelection) = 0; 6385 6386 virtual HRESULT STDMETHODCALLTYPE SetReadStreamSamples( 6387 WORD wStreamNum, 6388 WINBOOL fCompressed) = 0; 6389 6390 virtual HRESULT STDMETHODCALLTYPE GetReadStreamSamples( 6391 WORD wStreamNum, 6392 WINBOOL *pfCompressed) = 0; 6393 6394 virtual HRESULT STDMETHODCALLTYPE GetOutputSetting( 6395 DWORD dwOutputNum, 6396 LPCWSTR pszName, 6397 WMT_ATTR_DATATYPE *pType, 6398 BYTE *pValue, 6399 WORD *pcbLength) = 0; 6400 6401 virtual HRESULT STDMETHODCALLTYPE SetOutputSetting( 6402 DWORD dwOutputNum, 6403 LPCWSTR pszName, 6404 WMT_ATTR_DATATYPE Type, 6405 const BYTE *pValue, 6406 WORD cbLength) = 0; 6407 6408 virtual HRESULT STDMETHODCALLTYPE GetOutputCount( 6409 DWORD *pcOutputs) = 0; 6410 6411 virtual HRESULT STDMETHODCALLTYPE GetOutputProps( 6412 DWORD dwOutputNum, 6413 IWMOutputMediaProps **ppOutput) = 0; 6414 6415 virtual HRESULT STDMETHODCALLTYPE SetOutputProps( 6416 DWORD dwOutputNum, 6417 IWMOutputMediaProps *pOutput) = 0; 6418 6419 virtual HRESULT STDMETHODCALLTYPE GetOutputFormatCount( 6420 DWORD dwOutputNum, 6421 DWORD *pcFormats) = 0; 6422 6423 virtual HRESULT STDMETHODCALLTYPE GetOutputFormat( 6424 DWORD dwOutputNum, 6425 DWORD dwFormatNum, 6426 IWMOutputMediaProps **ppProps) = 0; 6427 6428 virtual HRESULT STDMETHODCALLTYPE GetOutputNumberForStream( 6429 WORD wStreamNum, 6430 DWORD *pdwOutputNum) = 0; 6431 6432 virtual HRESULT STDMETHODCALLTYPE GetStreamNumberForOutput( 6433 DWORD dwOutputNum, 6434 WORD *pwStreamNum) = 0; 6435 6436 virtual HRESULT STDMETHODCALLTYPE GetMaxOutputSampleSize( 6437 DWORD dwOutput, 6438 DWORD *pcbMax) = 0; 6439 6440 virtual HRESULT STDMETHODCALLTYPE GetMaxStreamSampleSize( 6441 WORD wStream, 6442 DWORD *pcbMax) = 0; 6443 6444 virtual HRESULT STDMETHODCALLTYPE OpenStream( 6445 IStream *pStream) = 0; 6446 6447 }; 6448 #ifdef __CRT_UUID_DECL 6449 __CRT_UUID_DECL(IWMSyncReader, 0x9397f121, 0x7705, 0x4dc9, 0xb0,0x49, 0x98,0xb6,0x98,0x18,0x84,0x14) 6450 #endif 6451 #else 6452 typedef struct IWMSyncReaderVtbl { 6453 BEGIN_INTERFACE 6454 6455 /*** IUnknown methods ***/ 6456 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 6457 IWMSyncReader *This, 6458 REFIID riid, 6459 void **ppvObject); 6460 6461 ULONG (STDMETHODCALLTYPE *AddRef)( 6462 IWMSyncReader *This); 6463 6464 ULONG (STDMETHODCALLTYPE *Release)( 6465 IWMSyncReader *This); 6466 6467 /*** IWMSyncReader methods ***/ 6468 HRESULT (STDMETHODCALLTYPE *Open)( 6469 IWMSyncReader *This, 6470 const WCHAR *pwszFilename); 6471 6472 HRESULT (STDMETHODCALLTYPE *Close)( 6473 IWMSyncReader *This); 6474 6475 HRESULT (STDMETHODCALLTYPE *SetRange)( 6476 IWMSyncReader *This, 6477 QWORD cnsStartTime, 6478 LONGLONG cnsDuration); 6479 6480 HRESULT (STDMETHODCALLTYPE *SetRangeByFrame)( 6481 IWMSyncReader *This, 6482 WORD wStreamNum, 6483 QWORD qwFrameNumber, 6484 LONGLONG cFramesToRead); 6485 6486 HRESULT (STDMETHODCALLTYPE *GetNextSample)( 6487 IWMSyncReader *This, 6488 WORD wStreamNum, 6489 INSSBuffer **ppSample, 6490 QWORD *pcnsSampleTime, 6491 QWORD *pcnsDuration, 6492 DWORD *pdwFlags, 6493 DWORD *pdwOutputNum, 6494 WORD *pwStreamNum); 6495 6496 HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)( 6497 IWMSyncReader *This, 6498 WORD cStreamCount, 6499 WORD *pwStreamNumbers, 6500 WMT_STREAM_SELECTION *pSelections); 6501 6502 HRESULT (STDMETHODCALLTYPE *GetStreamSelected)( 6503 IWMSyncReader *This, 6504 WORD wStreamNum, 6505 WMT_STREAM_SELECTION *pSelection); 6506 6507 HRESULT (STDMETHODCALLTYPE *SetReadStreamSamples)( 6508 IWMSyncReader *This, 6509 WORD wStreamNum, 6510 WINBOOL fCompressed); 6511 6512 HRESULT (STDMETHODCALLTYPE *GetReadStreamSamples)( 6513 IWMSyncReader *This, 6514 WORD wStreamNum, 6515 WINBOOL *pfCompressed); 6516 6517 HRESULT (STDMETHODCALLTYPE *GetOutputSetting)( 6518 IWMSyncReader *This, 6519 DWORD dwOutputNum, 6520 LPCWSTR pszName, 6521 WMT_ATTR_DATATYPE *pType, 6522 BYTE *pValue, 6523 WORD *pcbLength); 6524 6525 HRESULT (STDMETHODCALLTYPE *SetOutputSetting)( 6526 IWMSyncReader *This, 6527 DWORD dwOutputNum, 6528 LPCWSTR pszName, 6529 WMT_ATTR_DATATYPE Type, 6530 const BYTE *pValue, 6531 WORD cbLength); 6532 6533 HRESULT (STDMETHODCALLTYPE *GetOutputCount)( 6534 IWMSyncReader *This, 6535 DWORD *pcOutputs); 6536 6537 HRESULT (STDMETHODCALLTYPE *GetOutputProps)( 6538 IWMSyncReader *This, 6539 DWORD dwOutputNum, 6540 IWMOutputMediaProps **ppOutput); 6541 6542 HRESULT (STDMETHODCALLTYPE *SetOutputProps)( 6543 IWMSyncReader *This, 6544 DWORD dwOutputNum, 6545 IWMOutputMediaProps *pOutput); 6546 6547 HRESULT (STDMETHODCALLTYPE *GetOutputFormatCount)( 6548 IWMSyncReader *This, 6549 DWORD dwOutputNum, 6550 DWORD *pcFormats); 6551 6552 HRESULT (STDMETHODCALLTYPE *GetOutputFormat)( 6553 IWMSyncReader *This, 6554 DWORD dwOutputNum, 6555 DWORD dwFormatNum, 6556 IWMOutputMediaProps **ppProps); 6557 6558 HRESULT (STDMETHODCALLTYPE *GetOutputNumberForStream)( 6559 IWMSyncReader *This, 6560 WORD wStreamNum, 6561 DWORD *pdwOutputNum); 6562 6563 HRESULT (STDMETHODCALLTYPE *GetStreamNumberForOutput)( 6564 IWMSyncReader *This, 6565 DWORD dwOutputNum, 6566 WORD *pwStreamNum); 6567 6568 HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)( 6569 IWMSyncReader *This, 6570 DWORD dwOutput, 6571 DWORD *pcbMax); 6572 6573 HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)( 6574 IWMSyncReader *This, 6575 WORD wStream, 6576 DWORD *pcbMax); 6577 6578 HRESULT (STDMETHODCALLTYPE *OpenStream)( 6579 IWMSyncReader *This, 6580 IStream *pStream); 6581 6582 END_INTERFACE 6583 } IWMSyncReaderVtbl; 6584 6585 interface IWMSyncReader { 6586 CONST_VTBL IWMSyncReaderVtbl* lpVtbl; 6587 }; 6588 6589 #ifdef COBJMACROS 6590 #ifndef WIDL_C_INLINE_WRAPPERS 6591 /*** IUnknown methods ***/ 6592 #define IWMSyncReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 6593 #define IWMSyncReader_AddRef(This) (This)->lpVtbl->AddRef(This) 6594 #define IWMSyncReader_Release(This) (This)->lpVtbl->Release(This) 6595 /*** IWMSyncReader methods ***/ 6596 #define IWMSyncReader_Open(This,pwszFilename) (This)->lpVtbl->Open(This,pwszFilename) 6597 #define IWMSyncReader_Close(This) (This)->lpVtbl->Close(This) 6598 #define IWMSyncReader_SetRange(This,cnsStartTime,cnsDuration) (This)->lpVtbl->SetRange(This,cnsStartTime,cnsDuration) 6599 #define IWMSyncReader_SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead) (This)->lpVtbl->SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead) 6600 #define IWMSyncReader_GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum) (This)->lpVtbl->GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum) 6601 #define IWMSyncReader_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) 6602 #define IWMSyncReader_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection) 6603 #define IWMSyncReader_SetReadStreamSamples(This,wStreamNum,fCompressed) (This)->lpVtbl->SetReadStreamSamples(This,wStreamNum,fCompressed) 6604 #define IWMSyncReader_GetReadStreamSamples(This,wStreamNum,pfCompressed) (This)->lpVtbl->GetReadStreamSamples(This,wStreamNum,pfCompressed) 6605 #define IWMSyncReader_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) 6606 #define IWMSyncReader_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) 6607 #define IWMSyncReader_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs) 6608 #define IWMSyncReader_GetOutputProps(This,dwOutputNum,ppOutput) (This)->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput) 6609 #define IWMSyncReader_SetOutputProps(This,dwOutputNum,pOutput) (This)->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput) 6610 #define IWMSyncReader_GetOutputFormatCount(This,dwOutputNum,pcFormats) (This)->lpVtbl->GetOutputFormatCount(This,dwOutputNum,pcFormats) 6611 #define IWMSyncReader_GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps) (This)->lpVtbl->GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps) 6612 #define IWMSyncReader_GetOutputNumberForStream(This,wStreamNum,pdwOutputNum) (This)->lpVtbl->GetOutputNumberForStream(This,wStreamNum,pdwOutputNum) 6613 #define IWMSyncReader_GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum) (This)->lpVtbl->GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum) 6614 #define IWMSyncReader_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax) 6615 #define IWMSyncReader_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax) 6616 #define IWMSyncReader_OpenStream(This,pStream) (This)->lpVtbl->OpenStream(This,pStream) 6617 #else 6618 /*** IUnknown methods ***/ 6619 static FORCEINLINE HRESULT IWMSyncReader_QueryInterface(IWMSyncReader* This,REFIID riid,void **ppvObject) { 6620 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 6621 } 6622 static FORCEINLINE ULONG IWMSyncReader_AddRef(IWMSyncReader* This) { 6623 return This->lpVtbl->AddRef(This); 6624 } 6625 static FORCEINLINE ULONG IWMSyncReader_Release(IWMSyncReader* This) { 6626 return This->lpVtbl->Release(This); 6627 } 6628 /*** IWMSyncReader methods ***/ 6629 static FORCEINLINE HRESULT IWMSyncReader_Open(IWMSyncReader* This,const WCHAR *pwszFilename) { 6630 return This->lpVtbl->Open(This,pwszFilename); 6631 } 6632 static FORCEINLINE HRESULT IWMSyncReader_Close(IWMSyncReader* This) { 6633 return This->lpVtbl->Close(This); 6634 } 6635 static FORCEINLINE HRESULT IWMSyncReader_SetRange(IWMSyncReader* This,QWORD cnsStartTime,LONGLONG cnsDuration) { 6636 return This->lpVtbl->SetRange(This,cnsStartTime,cnsDuration); 6637 } 6638 static FORCEINLINE HRESULT IWMSyncReader_SetRangeByFrame(IWMSyncReader* This,WORD wStreamNum,QWORD qwFrameNumber,LONGLONG cFramesToRead) { 6639 return This->lpVtbl->SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead); 6640 } 6641 static FORCEINLINE HRESULT IWMSyncReader_GetNextSample(IWMSyncReader* This,WORD wStreamNum,INSSBuffer **ppSample,QWORD *pcnsSampleTime,QWORD *pcnsDuration,DWORD *pdwFlags,DWORD *pdwOutputNum,WORD *pwStreamNum) { 6642 return This->lpVtbl->GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum); 6643 } 6644 static FORCEINLINE HRESULT IWMSyncReader_SetStreamsSelected(IWMSyncReader* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) { 6645 return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections); 6646 } 6647 static FORCEINLINE HRESULT IWMSyncReader_GetStreamSelected(IWMSyncReader* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) { 6648 return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection); 6649 } 6650 static FORCEINLINE HRESULT IWMSyncReader_SetReadStreamSamples(IWMSyncReader* This,WORD wStreamNum,WINBOOL fCompressed) { 6651 return This->lpVtbl->SetReadStreamSamples(This,wStreamNum,fCompressed); 6652 } 6653 static FORCEINLINE HRESULT IWMSyncReader_GetReadStreamSamples(IWMSyncReader* This,WORD wStreamNum,WINBOOL *pfCompressed) { 6654 return This->lpVtbl->GetReadStreamSamples(This,wStreamNum,pfCompressed); 6655 } 6656 static FORCEINLINE HRESULT IWMSyncReader_GetOutputSetting(IWMSyncReader* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { 6657 return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength); 6658 } 6659 static FORCEINLINE HRESULT IWMSyncReader_SetOutputSetting(IWMSyncReader* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { 6660 return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength); 6661 } 6662 static FORCEINLINE HRESULT IWMSyncReader_GetOutputCount(IWMSyncReader* This,DWORD *pcOutputs) { 6663 return This->lpVtbl->GetOutputCount(This,pcOutputs); 6664 } 6665 static FORCEINLINE HRESULT IWMSyncReader_GetOutputProps(IWMSyncReader* This,DWORD dwOutputNum,IWMOutputMediaProps **ppOutput) { 6666 return This->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput); 6667 } 6668 static FORCEINLINE HRESULT IWMSyncReader_SetOutputProps(IWMSyncReader* This,DWORD dwOutputNum,IWMOutputMediaProps *pOutput) { 6669 return This->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput); 6670 } 6671 static FORCEINLINE HRESULT IWMSyncReader_GetOutputFormatCount(IWMSyncReader* This,DWORD dwOutputNum,DWORD *pcFormats) { 6672 return This->lpVtbl->GetOutputFormatCount(This,dwOutputNum,pcFormats); 6673 } 6674 static FORCEINLINE HRESULT IWMSyncReader_GetOutputFormat(IWMSyncReader* This,DWORD dwOutputNum,DWORD dwFormatNum,IWMOutputMediaProps **ppProps) { 6675 return This->lpVtbl->GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps); 6676 } 6677 static FORCEINLINE HRESULT IWMSyncReader_GetOutputNumberForStream(IWMSyncReader* This,WORD wStreamNum,DWORD *pdwOutputNum) { 6678 return This->lpVtbl->GetOutputNumberForStream(This,wStreamNum,pdwOutputNum); 6679 } 6680 static FORCEINLINE HRESULT IWMSyncReader_GetStreamNumberForOutput(IWMSyncReader* This,DWORD dwOutputNum,WORD *pwStreamNum) { 6681 return This->lpVtbl->GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum); 6682 } 6683 static FORCEINLINE HRESULT IWMSyncReader_GetMaxOutputSampleSize(IWMSyncReader* This,DWORD dwOutput,DWORD *pcbMax) { 6684 return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax); 6685 } 6686 static FORCEINLINE HRESULT IWMSyncReader_GetMaxStreamSampleSize(IWMSyncReader* This,WORD wStream,DWORD *pcbMax) { 6687 return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax); 6688 } 6689 static FORCEINLINE HRESULT IWMSyncReader_OpenStream(IWMSyncReader* This,IStream *pStream) { 6690 return This->lpVtbl->OpenStream(This,pStream); 6691 } 6692 #endif 6693 #endif 6694 6695 #endif 6696 6697 6698 #endif /* __IWMSyncReader_INTERFACE_DEFINED__ */ 6699 6700 /***************************************************************************** 6701 * IWMInputMediaProps interface 6702 */ 6703 #ifndef __IWMInputMediaProps_INTERFACE_DEFINED__ 6704 #define __IWMInputMediaProps_INTERFACE_DEFINED__ 6705 6706 DEFINE_GUID(IID_IWMInputMediaProps, 0x96406bd5, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 6707 #if defined(__cplusplus) && !defined(CINTERFACE) 6708 MIDL_INTERFACE("96406bd5-2b2b-11d3-b36b-00c04f6108ff") 6709 IWMInputMediaProps : public IWMMediaProps 6710 { 6711 virtual HRESULT STDMETHODCALLTYPE GetConnectionName( 6712 WCHAR *pwszName, 6713 WORD *pcchName) = 0; 6714 6715 virtual HRESULT STDMETHODCALLTYPE GetGroupName( 6716 WCHAR *pwszName, 6717 WORD *pcchName) = 0; 6718 6719 }; 6720 #ifdef __CRT_UUID_DECL 6721 __CRT_UUID_DECL(IWMInputMediaProps, 0x96406bd5, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 6722 #endif 6723 #else 6724 typedef struct IWMInputMediaPropsVtbl { 6725 BEGIN_INTERFACE 6726 6727 /*** IUnknown methods ***/ 6728 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 6729 IWMInputMediaProps *This, 6730 REFIID riid, 6731 void **ppvObject); 6732 6733 ULONG (STDMETHODCALLTYPE *AddRef)( 6734 IWMInputMediaProps *This); 6735 6736 ULONG (STDMETHODCALLTYPE *Release)( 6737 IWMInputMediaProps *This); 6738 6739 /*** IWMMediaProps methods ***/ 6740 HRESULT (STDMETHODCALLTYPE *GetType)( 6741 IWMInputMediaProps *This, 6742 GUID *pguidType); 6743 6744 HRESULT (STDMETHODCALLTYPE *GetMediaType)( 6745 IWMInputMediaProps *This, 6746 WM_MEDIA_TYPE *pType, 6747 DWORD *pcbType); 6748 6749 HRESULT (STDMETHODCALLTYPE *SetMediaType)( 6750 IWMInputMediaProps *This, 6751 WM_MEDIA_TYPE *pType); 6752 6753 /*** IWMInputMediaProps methods ***/ 6754 HRESULT (STDMETHODCALLTYPE *GetConnectionName)( 6755 IWMInputMediaProps *This, 6756 WCHAR *pwszName, 6757 WORD *pcchName); 6758 6759 HRESULT (STDMETHODCALLTYPE *GetGroupName)( 6760 IWMInputMediaProps *This, 6761 WCHAR *pwszName, 6762 WORD *pcchName); 6763 6764 END_INTERFACE 6765 } IWMInputMediaPropsVtbl; 6766 6767 interface IWMInputMediaProps { 6768 CONST_VTBL IWMInputMediaPropsVtbl* lpVtbl; 6769 }; 6770 6771 #ifdef COBJMACROS 6772 #ifndef WIDL_C_INLINE_WRAPPERS 6773 /*** IUnknown methods ***/ 6774 #define IWMInputMediaProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 6775 #define IWMInputMediaProps_AddRef(This) (This)->lpVtbl->AddRef(This) 6776 #define IWMInputMediaProps_Release(This) (This)->lpVtbl->Release(This) 6777 /*** IWMMediaProps methods ***/ 6778 #define IWMInputMediaProps_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType) 6779 #define IWMInputMediaProps_GetMediaType(This,pType,pcbType) (This)->lpVtbl->GetMediaType(This,pType,pcbType) 6780 #define IWMInputMediaProps_SetMediaType(This,pType) (This)->lpVtbl->SetMediaType(This,pType) 6781 /*** IWMInputMediaProps methods ***/ 6782 #define IWMInputMediaProps_GetConnectionName(This,pwszName,pcchName) (This)->lpVtbl->GetConnectionName(This,pwszName,pcchName) 6783 #define IWMInputMediaProps_GetGroupName(This,pwszName,pcchName) (This)->lpVtbl->GetGroupName(This,pwszName,pcchName) 6784 #else 6785 /*** IUnknown methods ***/ 6786 static FORCEINLINE HRESULT IWMInputMediaProps_QueryInterface(IWMInputMediaProps* This,REFIID riid,void **ppvObject) { 6787 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 6788 } 6789 static FORCEINLINE ULONG IWMInputMediaProps_AddRef(IWMInputMediaProps* This) { 6790 return This->lpVtbl->AddRef(This); 6791 } 6792 static FORCEINLINE ULONG IWMInputMediaProps_Release(IWMInputMediaProps* This) { 6793 return This->lpVtbl->Release(This); 6794 } 6795 /*** IWMMediaProps methods ***/ 6796 static FORCEINLINE HRESULT IWMInputMediaProps_GetType(IWMInputMediaProps* This,GUID *pguidType) { 6797 return This->lpVtbl->GetType(This,pguidType); 6798 } 6799 static FORCEINLINE HRESULT IWMInputMediaProps_GetMediaType(IWMInputMediaProps* This,WM_MEDIA_TYPE *pType,DWORD *pcbType) { 6800 return This->lpVtbl->GetMediaType(This,pType,pcbType); 6801 } 6802 static FORCEINLINE HRESULT IWMInputMediaProps_SetMediaType(IWMInputMediaProps* This,WM_MEDIA_TYPE *pType) { 6803 return This->lpVtbl->SetMediaType(This,pType); 6804 } 6805 /*** IWMInputMediaProps methods ***/ 6806 static FORCEINLINE HRESULT IWMInputMediaProps_GetConnectionName(IWMInputMediaProps* This,WCHAR *pwszName,WORD *pcchName) { 6807 return This->lpVtbl->GetConnectionName(This,pwszName,pcchName); 6808 } 6809 static FORCEINLINE HRESULT IWMInputMediaProps_GetGroupName(IWMInputMediaProps* This,WCHAR *pwszName,WORD *pcchName) { 6810 return This->lpVtbl->GetGroupName(This,pwszName,pcchName); 6811 } 6812 #endif 6813 #endif 6814 6815 #endif 6816 6817 6818 #endif /* __IWMInputMediaProps_INTERFACE_DEFINED__ */ 6819 6820 /***************************************************************************** 6821 * IWMWriterSink interface 6822 */ 6823 #ifndef __IWMWriterSink_INTERFACE_DEFINED__ 6824 #define __IWMWriterSink_INTERFACE_DEFINED__ 6825 6826 DEFINE_GUID(IID_IWMWriterSink, 0x96406be4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 6827 #if defined(__cplusplus) && !defined(CINTERFACE) 6828 MIDL_INTERFACE("96406be4-2b2b-11d3-b36b-00c04f6108ff") 6829 IWMWriterSink : public IUnknown 6830 { 6831 virtual HRESULT STDMETHODCALLTYPE OnHeader( 6832 INSSBuffer *pHeader) = 0; 6833 6834 virtual HRESULT STDMETHODCALLTYPE IsRealTime( 6835 WINBOOL *pfRealTime) = 0; 6836 6837 virtual HRESULT STDMETHODCALLTYPE AllocateDataUnit( 6838 DWORD cbDataUnit, 6839 INSSBuffer **ppDataUnit) = 0; 6840 6841 virtual HRESULT STDMETHODCALLTYPE OnDataUnit( 6842 INSSBuffer *pDataUnit) = 0; 6843 6844 virtual HRESULT STDMETHODCALLTYPE OnEndWriting( 6845 ) = 0; 6846 6847 }; 6848 #ifdef __CRT_UUID_DECL 6849 __CRT_UUID_DECL(IWMWriterSink, 0x96406be4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 6850 #endif 6851 #else 6852 typedef struct IWMWriterSinkVtbl { 6853 BEGIN_INTERFACE 6854 6855 /*** IUnknown methods ***/ 6856 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 6857 IWMWriterSink *This, 6858 REFIID riid, 6859 void **ppvObject); 6860 6861 ULONG (STDMETHODCALLTYPE *AddRef)( 6862 IWMWriterSink *This); 6863 6864 ULONG (STDMETHODCALLTYPE *Release)( 6865 IWMWriterSink *This); 6866 6867 /*** IWMWriterSink methods ***/ 6868 HRESULT (STDMETHODCALLTYPE *OnHeader)( 6869 IWMWriterSink *This, 6870 INSSBuffer *pHeader); 6871 6872 HRESULT (STDMETHODCALLTYPE *IsRealTime)( 6873 IWMWriterSink *This, 6874 WINBOOL *pfRealTime); 6875 6876 HRESULT (STDMETHODCALLTYPE *AllocateDataUnit)( 6877 IWMWriterSink *This, 6878 DWORD cbDataUnit, 6879 INSSBuffer **ppDataUnit); 6880 6881 HRESULT (STDMETHODCALLTYPE *OnDataUnit)( 6882 IWMWriterSink *This, 6883 INSSBuffer *pDataUnit); 6884 6885 HRESULT (STDMETHODCALLTYPE *OnEndWriting)( 6886 IWMWriterSink *This); 6887 6888 END_INTERFACE 6889 } IWMWriterSinkVtbl; 6890 6891 interface IWMWriterSink { 6892 CONST_VTBL IWMWriterSinkVtbl* lpVtbl; 6893 }; 6894 6895 #ifdef COBJMACROS 6896 #ifndef WIDL_C_INLINE_WRAPPERS 6897 /*** IUnknown methods ***/ 6898 #define IWMWriterSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 6899 #define IWMWriterSink_AddRef(This) (This)->lpVtbl->AddRef(This) 6900 #define IWMWriterSink_Release(This) (This)->lpVtbl->Release(This) 6901 /*** IWMWriterSink methods ***/ 6902 #define IWMWriterSink_OnHeader(This,pHeader) (This)->lpVtbl->OnHeader(This,pHeader) 6903 #define IWMWriterSink_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime) 6904 #define IWMWriterSink_AllocateDataUnit(This,cbDataUnit,ppDataUnit) (This)->lpVtbl->AllocateDataUnit(This,cbDataUnit,ppDataUnit) 6905 #define IWMWriterSink_OnDataUnit(This,pDataUnit) (This)->lpVtbl->OnDataUnit(This,pDataUnit) 6906 #define IWMWriterSink_OnEndWriting(This) (This)->lpVtbl->OnEndWriting(This) 6907 #else 6908 /*** IUnknown methods ***/ 6909 static FORCEINLINE HRESULT IWMWriterSink_QueryInterface(IWMWriterSink* This,REFIID riid,void **ppvObject) { 6910 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 6911 } 6912 static FORCEINLINE ULONG IWMWriterSink_AddRef(IWMWriterSink* This) { 6913 return This->lpVtbl->AddRef(This); 6914 } 6915 static FORCEINLINE ULONG IWMWriterSink_Release(IWMWriterSink* This) { 6916 return This->lpVtbl->Release(This); 6917 } 6918 /*** IWMWriterSink methods ***/ 6919 static FORCEINLINE HRESULT IWMWriterSink_OnHeader(IWMWriterSink* This,INSSBuffer *pHeader) { 6920 return This->lpVtbl->OnHeader(This,pHeader); 6921 } 6922 static FORCEINLINE HRESULT IWMWriterSink_IsRealTime(IWMWriterSink* This,WINBOOL *pfRealTime) { 6923 return This->lpVtbl->IsRealTime(This,pfRealTime); 6924 } 6925 static FORCEINLINE HRESULT IWMWriterSink_AllocateDataUnit(IWMWriterSink* This,DWORD cbDataUnit,INSSBuffer **ppDataUnit) { 6926 return This->lpVtbl->AllocateDataUnit(This,cbDataUnit,ppDataUnit); 6927 } 6928 static FORCEINLINE HRESULT IWMWriterSink_OnDataUnit(IWMWriterSink* This,INSSBuffer *pDataUnit) { 6929 return This->lpVtbl->OnDataUnit(This,pDataUnit); 6930 } 6931 static FORCEINLINE HRESULT IWMWriterSink_OnEndWriting(IWMWriterSink* This) { 6932 return This->lpVtbl->OnEndWriting(This); 6933 } 6934 #endif 6935 #endif 6936 6937 #endif 6938 6939 6940 #endif /* __IWMWriterSink_INTERFACE_DEFINED__ */ 6941 6942 /***************************************************************************** 6943 * IWMWriter interface 6944 */ 6945 #ifndef __IWMWriter_INTERFACE_DEFINED__ 6946 #define __IWMWriter_INTERFACE_DEFINED__ 6947 6948 DEFINE_GUID(IID_IWMWriter, 0x96406bd4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 6949 #if defined(__cplusplus) && !defined(CINTERFACE) 6950 MIDL_INTERFACE("96406bd4-2b2b-11d3-b36b-00c04f6108ff") 6951 IWMWriter : public IUnknown 6952 { 6953 virtual HRESULT STDMETHODCALLTYPE SetProfileByID( 6954 REFGUID guidProfile) = 0; 6955 6956 virtual HRESULT STDMETHODCALLTYPE SetProfile( 6957 IWMProfile *pProfile) = 0; 6958 6959 virtual HRESULT STDMETHODCALLTYPE SetOutputFilename( 6960 const WCHAR *pwszFilename) = 0; 6961 6962 virtual HRESULT STDMETHODCALLTYPE GetInputCount( 6963 DWORD *pcInputs) = 0; 6964 6965 virtual HRESULT STDMETHODCALLTYPE GetInputProps( 6966 DWORD dwInputNum, 6967 IWMInputMediaProps **ppInput) = 0; 6968 6969 virtual HRESULT STDMETHODCALLTYPE SetInputProps( 6970 DWORD dwInputNum, 6971 IWMInputMediaProps *pInput) = 0; 6972 6973 virtual HRESULT STDMETHODCALLTYPE GetInputFormatCount( 6974 DWORD dwInputNumber, 6975 DWORD *pcFormats) = 0; 6976 6977 virtual HRESULT STDMETHODCALLTYPE GetInputFormat( 6978 DWORD dwInputNumber, 6979 DWORD dwFormatNumber, 6980 IWMInputMediaProps **pProps) = 0; 6981 6982 virtual HRESULT STDMETHODCALLTYPE BeginWriting( 6983 ) = 0; 6984 6985 virtual HRESULT STDMETHODCALLTYPE EndWriting( 6986 ) = 0; 6987 6988 virtual HRESULT STDMETHODCALLTYPE AllocateSample( 6989 DWORD dwSampleSize, 6990 INSSBuffer **ppSample) = 0; 6991 6992 virtual HRESULT STDMETHODCALLTYPE WriteSample( 6993 DWORD dwInputNum, 6994 QWORD cnsSampleTime, 6995 DWORD dwFlags, 6996 INSSBuffer *pSample) = 0; 6997 6998 virtual HRESULT STDMETHODCALLTYPE Flush( 6999 ) = 0; 7000 7001 }; 7002 #ifdef __CRT_UUID_DECL 7003 __CRT_UUID_DECL(IWMWriter, 0x96406bd4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 7004 #endif 7005 #else 7006 typedef struct IWMWriterVtbl { 7007 BEGIN_INTERFACE 7008 7009 /*** IUnknown methods ***/ 7010 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 7011 IWMWriter *This, 7012 REFIID riid, 7013 void **ppvObject); 7014 7015 ULONG (STDMETHODCALLTYPE *AddRef)( 7016 IWMWriter *This); 7017 7018 ULONG (STDMETHODCALLTYPE *Release)( 7019 IWMWriter *This); 7020 7021 /*** IWMWriter methods ***/ 7022 HRESULT (STDMETHODCALLTYPE *SetProfileByID)( 7023 IWMWriter *This, 7024 REFGUID guidProfile); 7025 7026 HRESULT (STDMETHODCALLTYPE *SetProfile)( 7027 IWMWriter *This, 7028 IWMProfile *pProfile); 7029 7030 HRESULT (STDMETHODCALLTYPE *SetOutputFilename)( 7031 IWMWriter *This, 7032 const WCHAR *pwszFilename); 7033 7034 HRESULT (STDMETHODCALLTYPE *GetInputCount)( 7035 IWMWriter *This, 7036 DWORD *pcInputs); 7037 7038 HRESULT (STDMETHODCALLTYPE *GetInputProps)( 7039 IWMWriter *This, 7040 DWORD dwInputNum, 7041 IWMInputMediaProps **ppInput); 7042 7043 HRESULT (STDMETHODCALLTYPE *SetInputProps)( 7044 IWMWriter *This, 7045 DWORD dwInputNum, 7046 IWMInputMediaProps *pInput); 7047 7048 HRESULT (STDMETHODCALLTYPE *GetInputFormatCount)( 7049 IWMWriter *This, 7050 DWORD dwInputNumber, 7051 DWORD *pcFormats); 7052 7053 HRESULT (STDMETHODCALLTYPE *GetInputFormat)( 7054 IWMWriter *This, 7055 DWORD dwInputNumber, 7056 DWORD dwFormatNumber, 7057 IWMInputMediaProps **pProps); 7058 7059 HRESULT (STDMETHODCALLTYPE *BeginWriting)( 7060 IWMWriter *This); 7061 7062 HRESULT (STDMETHODCALLTYPE *EndWriting)( 7063 IWMWriter *This); 7064 7065 HRESULT (STDMETHODCALLTYPE *AllocateSample)( 7066 IWMWriter *This, 7067 DWORD dwSampleSize, 7068 INSSBuffer **ppSample); 7069 7070 HRESULT (STDMETHODCALLTYPE *WriteSample)( 7071 IWMWriter *This, 7072 DWORD dwInputNum, 7073 QWORD cnsSampleTime, 7074 DWORD dwFlags, 7075 INSSBuffer *pSample); 7076 7077 HRESULT (STDMETHODCALLTYPE *Flush)( 7078 IWMWriter *This); 7079 7080 END_INTERFACE 7081 } IWMWriterVtbl; 7082 7083 interface IWMWriter { 7084 CONST_VTBL IWMWriterVtbl* lpVtbl; 7085 }; 7086 7087 #ifdef COBJMACROS 7088 #ifndef WIDL_C_INLINE_WRAPPERS 7089 /*** IUnknown methods ***/ 7090 #define IWMWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 7091 #define IWMWriter_AddRef(This) (This)->lpVtbl->AddRef(This) 7092 #define IWMWriter_Release(This) (This)->lpVtbl->Release(This) 7093 /*** IWMWriter methods ***/ 7094 #define IWMWriter_SetProfileByID(This,guidProfile) (This)->lpVtbl->SetProfileByID(This,guidProfile) 7095 #define IWMWriter_SetProfile(This,pProfile) (This)->lpVtbl->SetProfile(This,pProfile) 7096 #define IWMWriter_SetOutputFilename(This,pwszFilename) (This)->lpVtbl->SetOutputFilename(This,pwszFilename) 7097 #define IWMWriter_GetInputCount(This,pcInputs) (This)->lpVtbl->GetInputCount(This,pcInputs) 7098 #define IWMWriter_GetInputProps(This,dwInputNum,ppInput) (This)->lpVtbl->GetInputProps(This,dwInputNum,ppInput) 7099 #define IWMWriter_SetInputProps(This,dwInputNum,pInput) (This)->lpVtbl->SetInputProps(This,dwInputNum,pInput) 7100 #define IWMWriter_GetInputFormatCount(This,dwInputNumber,pcFormats) (This)->lpVtbl->GetInputFormatCount(This,dwInputNumber,pcFormats) 7101 #define IWMWriter_GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps) (This)->lpVtbl->GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps) 7102 #define IWMWriter_BeginWriting(This) (This)->lpVtbl->BeginWriting(This) 7103 #define IWMWriter_EndWriting(This) (This)->lpVtbl->EndWriting(This) 7104 #define IWMWriter_AllocateSample(This,dwSampleSize,ppSample) (This)->lpVtbl->AllocateSample(This,dwSampleSize,ppSample) 7105 #define IWMWriter_WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample) (This)->lpVtbl->WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample) 7106 #define IWMWriter_Flush(This) (This)->lpVtbl->Flush(This) 7107 #else 7108 /*** IUnknown methods ***/ 7109 static FORCEINLINE HRESULT IWMWriter_QueryInterface(IWMWriter* This,REFIID riid,void **ppvObject) { 7110 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 7111 } 7112 static FORCEINLINE ULONG IWMWriter_AddRef(IWMWriter* This) { 7113 return This->lpVtbl->AddRef(This); 7114 } 7115 static FORCEINLINE ULONG IWMWriter_Release(IWMWriter* This) { 7116 return This->lpVtbl->Release(This); 7117 } 7118 /*** IWMWriter methods ***/ 7119 static FORCEINLINE HRESULT IWMWriter_SetProfileByID(IWMWriter* This,REFGUID guidProfile) { 7120 return This->lpVtbl->SetProfileByID(This,guidProfile); 7121 } 7122 static FORCEINLINE HRESULT IWMWriter_SetProfile(IWMWriter* This,IWMProfile *pProfile) { 7123 return This->lpVtbl->SetProfile(This,pProfile); 7124 } 7125 static FORCEINLINE HRESULT IWMWriter_SetOutputFilename(IWMWriter* This,const WCHAR *pwszFilename) { 7126 return This->lpVtbl->SetOutputFilename(This,pwszFilename); 7127 } 7128 static FORCEINLINE HRESULT IWMWriter_GetInputCount(IWMWriter* This,DWORD *pcInputs) { 7129 return This->lpVtbl->GetInputCount(This,pcInputs); 7130 } 7131 static FORCEINLINE HRESULT IWMWriter_GetInputProps(IWMWriter* This,DWORD dwInputNum,IWMInputMediaProps **ppInput) { 7132 return This->lpVtbl->GetInputProps(This,dwInputNum,ppInput); 7133 } 7134 static FORCEINLINE HRESULT IWMWriter_SetInputProps(IWMWriter* This,DWORD dwInputNum,IWMInputMediaProps *pInput) { 7135 return This->lpVtbl->SetInputProps(This,dwInputNum,pInput); 7136 } 7137 static FORCEINLINE HRESULT IWMWriter_GetInputFormatCount(IWMWriter* This,DWORD dwInputNumber,DWORD *pcFormats) { 7138 return This->lpVtbl->GetInputFormatCount(This,dwInputNumber,pcFormats); 7139 } 7140 static FORCEINLINE HRESULT IWMWriter_GetInputFormat(IWMWriter* This,DWORD dwInputNumber,DWORD dwFormatNumber,IWMInputMediaProps **pProps) { 7141 return This->lpVtbl->GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps); 7142 } 7143 static FORCEINLINE HRESULT IWMWriter_BeginWriting(IWMWriter* This) { 7144 return This->lpVtbl->BeginWriting(This); 7145 } 7146 static FORCEINLINE HRESULT IWMWriter_EndWriting(IWMWriter* This) { 7147 return This->lpVtbl->EndWriting(This); 7148 } 7149 static FORCEINLINE HRESULT IWMWriter_AllocateSample(IWMWriter* This,DWORD dwSampleSize,INSSBuffer **ppSample) { 7150 return This->lpVtbl->AllocateSample(This,dwSampleSize,ppSample); 7151 } 7152 static FORCEINLINE HRESULT IWMWriter_WriteSample(IWMWriter* This,DWORD dwInputNum,QWORD cnsSampleTime,DWORD dwFlags,INSSBuffer *pSample) { 7153 return This->lpVtbl->WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample); 7154 } 7155 static FORCEINLINE HRESULT IWMWriter_Flush(IWMWriter* This) { 7156 return This->lpVtbl->Flush(This); 7157 } 7158 #endif 7159 #endif 7160 7161 #endif 7162 7163 7164 #endif /* __IWMWriter_INTERFACE_DEFINED__ */ 7165 7166 /***************************************************************************** 7167 * IWMWriterAdvanced interface 7168 */ 7169 #ifndef __IWMWriterAdvanced_INTERFACE_DEFINED__ 7170 #define __IWMWriterAdvanced_INTERFACE_DEFINED__ 7171 7172 DEFINE_GUID(IID_IWMWriterAdvanced, 0x96406be3, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 7173 #if defined(__cplusplus) && !defined(CINTERFACE) 7174 MIDL_INTERFACE("96406be3-2b2b-11d3-b36b-00c04f6108ff") 7175 IWMWriterAdvanced : public IUnknown 7176 { 7177 virtual HRESULT STDMETHODCALLTYPE GetSinkCount( 7178 DWORD *pcSinks) = 0; 7179 7180 virtual HRESULT STDMETHODCALLTYPE GetSink( 7181 DWORD dwSinkNum, 7182 IWMWriterSink **ppSink) = 0; 7183 7184 virtual HRESULT STDMETHODCALLTYPE AddSink( 7185 IWMWriterSink *pSink) = 0; 7186 7187 virtual HRESULT STDMETHODCALLTYPE RemoveSink( 7188 IWMWriterSink *pSink) = 0; 7189 7190 virtual HRESULT STDMETHODCALLTYPE WriteStreamSample( 7191 WORD wStreamNum, 7192 QWORD cnsSampleTime, 7193 DWORD msSampleSendTime, 7194 QWORD cnsSampleDuration, 7195 DWORD dwFlags, 7196 INSSBuffer *pSample) = 0; 7197 7198 virtual HRESULT STDMETHODCALLTYPE SetLiveSource( 7199 WINBOOL fIsLiveSource) = 0; 7200 7201 virtual HRESULT STDMETHODCALLTYPE IsRealTime( 7202 WINBOOL *pfRealTime) = 0; 7203 7204 virtual HRESULT STDMETHODCALLTYPE GetWriterTime( 7205 QWORD *pCurrentTime) = 0; 7206 7207 virtual HRESULT STDMETHODCALLTYPE GetStatistics( 7208 WORD wStreamNum, 7209 WM_WRITER_STATISTICS *pStats) = 0; 7210 7211 virtual HRESULT STDMETHODCALLTYPE SetSyncTolerance( 7212 DWORD msWindow) = 0; 7213 7214 virtual HRESULT STDMETHODCALLTYPE GetSyncTolerance( 7215 DWORD *pmsWindow) = 0; 7216 7217 }; 7218 #ifdef __CRT_UUID_DECL 7219 __CRT_UUID_DECL(IWMWriterAdvanced, 0x96406be3, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 7220 #endif 7221 #else 7222 typedef struct IWMWriterAdvancedVtbl { 7223 BEGIN_INTERFACE 7224 7225 /*** IUnknown methods ***/ 7226 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 7227 IWMWriterAdvanced *This, 7228 REFIID riid, 7229 void **ppvObject); 7230 7231 ULONG (STDMETHODCALLTYPE *AddRef)( 7232 IWMWriterAdvanced *This); 7233 7234 ULONG (STDMETHODCALLTYPE *Release)( 7235 IWMWriterAdvanced *This); 7236 7237 /*** IWMWriterAdvanced methods ***/ 7238 HRESULT (STDMETHODCALLTYPE *GetSinkCount)( 7239 IWMWriterAdvanced *This, 7240 DWORD *pcSinks); 7241 7242 HRESULT (STDMETHODCALLTYPE *GetSink)( 7243 IWMWriterAdvanced *This, 7244 DWORD dwSinkNum, 7245 IWMWriterSink **ppSink); 7246 7247 HRESULT (STDMETHODCALLTYPE *AddSink)( 7248 IWMWriterAdvanced *This, 7249 IWMWriterSink *pSink); 7250 7251 HRESULT (STDMETHODCALLTYPE *RemoveSink)( 7252 IWMWriterAdvanced *This, 7253 IWMWriterSink *pSink); 7254 7255 HRESULT (STDMETHODCALLTYPE *WriteStreamSample)( 7256 IWMWriterAdvanced *This, 7257 WORD wStreamNum, 7258 QWORD cnsSampleTime, 7259 DWORD msSampleSendTime, 7260 QWORD cnsSampleDuration, 7261 DWORD dwFlags, 7262 INSSBuffer *pSample); 7263 7264 HRESULT (STDMETHODCALLTYPE *SetLiveSource)( 7265 IWMWriterAdvanced *This, 7266 WINBOOL fIsLiveSource); 7267 7268 HRESULT (STDMETHODCALLTYPE *IsRealTime)( 7269 IWMWriterAdvanced *This, 7270 WINBOOL *pfRealTime); 7271 7272 HRESULT (STDMETHODCALLTYPE *GetWriterTime)( 7273 IWMWriterAdvanced *This, 7274 QWORD *pCurrentTime); 7275 7276 HRESULT (STDMETHODCALLTYPE *GetStatistics)( 7277 IWMWriterAdvanced *This, 7278 WORD wStreamNum, 7279 WM_WRITER_STATISTICS *pStats); 7280 7281 HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)( 7282 IWMWriterAdvanced *This, 7283 DWORD msWindow); 7284 7285 HRESULT (STDMETHODCALLTYPE *GetSyncTolerance)( 7286 IWMWriterAdvanced *This, 7287 DWORD *pmsWindow); 7288 7289 END_INTERFACE 7290 } IWMWriterAdvancedVtbl; 7291 7292 interface IWMWriterAdvanced { 7293 CONST_VTBL IWMWriterAdvancedVtbl* lpVtbl; 7294 }; 7295 7296 #ifdef COBJMACROS 7297 #ifndef WIDL_C_INLINE_WRAPPERS 7298 /*** IUnknown methods ***/ 7299 #define IWMWriterAdvanced_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 7300 #define IWMWriterAdvanced_AddRef(This) (This)->lpVtbl->AddRef(This) 7301 #define IWMWriterAdvanced_Release(This) (This)->lpVtbl->Release(This) 7302 /*** IWMWriterAdvanced methods ***/ 7303 #define IWMWriterAdvanced_GetSinkCount(This,pcSinks) (This)->lpVtbl->GetSinkCount(This,pcSinks) 7304 #define IWMWriterAdvanced_GetSink(This,dwSinkNum,ppSink) (This)->lpVtbl->GetSink(This,dwSinkNum,ppSink) 7305 #define IWMWriterAdvanced_AddSink(This,pSink) (This)->lpVtbl->AddSink(This,pSink) 7306 #define IWMWriterAdvanced_RemoveSink(This,pSink) (This)->lpVtbl->RemoveSink(This,pSink) 7307 #define IWMWriterAdvanced_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) (This)->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) 7308 #define IWMWriterAdvanced_SetLiveSource(This,fIsLiveSource) (This)->lpVtbl->SetLiveSource(This,fIsLiveSource) 7309 #define IWMWriterAdvanced_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime) 7310 #define IWMWriterAdvanced_GetWriterTime(This,pCurrentTime) (This)->lpVtbl->GetWriterTime(This,pCurrentTime) 7311 #define IWMWriterAdvanced_GetStatistics(This,wStreamNum,pStats) (This)->lpVtbl->GetStatistics(This,wStreamNum,pStats) 7312 #define IWMWriterAdvanced_SetSyncTolerance(This,msWindow) (This)->lpVtbl->SetSyncTolerance(This,msWindow) 7313 #define IWMWriterAdvanced_GetSyncTolerance(This,pmsWindow) (This)->lpVtbl->GetSyncTolerance(This,pmsWindow) 7314 #else 7315 /*** IUnknown methods ***/ 7316 static FORCEINLINE HRESULT IWMWriterAdvanced_QueryInterface(IWMWriterAdvanced* This,REFIID riid,void **ppvObject) { 7317 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 7318 } 7319 static FORCEINLINE ULONG IWMWriterAdvanced_AddRef(IWMWriterAdvanced* This) { 7320 return This->lpVtbl->AddRef(This); 7321 } 7322 static FORCEINLINE ULONG IWMWriterAdvanced_Release(IWMWriterAdvanced* This) { 7323 return This->lpVtbl->Release(This); 7324 } 7325 /*** IWMWriterAdvanced methods ***/ 7326 static FORCEINLINE HRESULT IWMWriterAdvanced_GetSinkCount(IWMWriterAdvanced* This,DWORD *pcSinks) { 7327 return This->lpVtbl->GetSinkCount(This,pcSinks); 7328 } 7329 static FORCEINLINE HRESULT IWMWriterAdvanced_GetSink(IWMWriterAdvanced* This,DWORD dwSinkNum,IWMWriterSink **ppSink) { 7330 return This->lpVtbl->GetSink(This,dwSinkNum,ppSink); 7331 } 7332 static FORCEINLINE HRESULT IWMWriterAdvanced_AddSink(IWMWriterAdvanced* This,IWMWriterSink *pSink) { 7333 return This->lpVtbl->AddSink(This,pSink); 7334 } 7335 static FORCEINLINE HRESULT IWMWriterAdvanced_RemoveSink(IWMWriterAdvanced* This,IWMWriterSink *pSink) { 7336 return This->lpVtbl->RemoveSink(This,pSink); 7337 } 7338 static FORCEINLINE HRESULT IWMWriterAdvanced_WriteStreamSample(IWMWriterAdvanced* This,WORD wStreamNum,QWORD cnsSampleTime,DWORD msSampleSendTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample) { 7339 return This->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample); 7340 } 7341 static FORCEINLINE HRESULT IWMWriterAdvanced_SetLiveSource(IWMWriterAdvanced* This,WINBOOL fIsLiveSource) { 7342 return This->lpVtbl->SetLiveSource(This,fIsLiveSource); 7343 } 7344 static FORCEINLINE HRESULT IWMWriterAdvanced_IsRealTime(IWMWriterAdvanced* This,WINBOOL *pfRealTime) { 7345 return This->lpVtbl->IsRealTime(This,pfRealTime); 7346 } 7347 static FORCEINLINE HRESULT IWMWriterAdvanced_GetWriterTime(IWMWriterAdvanced* This,QWORD *pCurrentTime) { 7348 return This->lpVtbl->GetWriterTime(This,pCurrentTime); 7349 } 7350 static FORCEINLINE HRESULT IWMWriterAdvanced_GetStatistics(IWMWriterAdvanced* This,WORD wStreamNum,WM_WRITER_STATISTICS *pStats) { 7351 return This->lpVtbl->GetStatistics(This,wStreamNum,pStats); 7352 } 7353 static FORCEINLINE HRESULT IWMWriterAdvanced_SetSyncTolerance(IWMWriterAdvanced* This,DWORD msWindow) { 7354 return This->lpVtbl->SetSyncTolerance(This,msWindow); 7355 } 7356 static FORCEINLINE HRESULT IWMWriterAdvanced_GetSyncTolerance(IWMWriterAdvanced* This,DWORD *pmsWindow) { 7357 return This->lpVtbl->GetSyncTolerance(This,pmsWindow); 7358 } 7359 #endif 7360 #endif 7361 7362 #endif 7363 7364 7365 #endif /* __IWMWriterAdvanced_INTERFACE_DEFINED__ */ 7366 7367 /***************************************************************************** 7368 * IWMWriterAdvanced2 interface 7369 */ 7370 #ifndef __IWMWriterAdvanced2_INTERFACE_DEFINED__ 7371 #define __IWMWriterAdvanced2_INTERFACE_DEFINED__ 7372 7373 DEFINE_GUID(IID_IWMWriterAdvanced2, 0x962dc1ec, 0xc046, 0x4db8, 0x9c,0xc7, 0x26,0xce,0xae,0x50,0x08,0x17); 7374 #if defined(__cplusplus) && !defined(CINTERFACE) 7375 MIDL_INTERFACE("962dc1ec-c046-4db8-9cc7-26ceae500817") 7376 IWMWriterAdvanced2 : public IWMWriterAdvanced 7377 { 7378 virtual HRESULT STDMETHODCALLTYPE GetInputSetting( 7379 DWORD dwInputNum, 7380 LPCWSTR pszName, 7381 WMT_ATTR_DATATYPE *pType, 7382 BYTE *pValue, 7383 WORD *pcbLength) = 0; 7384 7385 virtual HRESULT STDMETHODCALLTYPE SetInputSetting( 7386 DWORD dwInputNum, 7387 LPCWSTR pszName, 7388 WMT_ATTR_DATATYPE Type, 7389 const BYTE *pValue, 7390 WORD cbLength) = 0; 7391 7392 }; 7393 #ifdef __CRT_UUID_DECL 7394 __CRT_UUID_DECL(IWMWriterAdvanced2, 0x962dc1ec, 0xc046, 0x4db8, 0x9c,0xc7, 0x26,0xce,0xae,0x50,0x08,0x17) 7395 #endif 7396 #else 7397 typedef struct IWMWriterAdvanced2Vtbl { 7398 BEGIN_INTERFACE 7399 7400 /*** IUnknown methods ***/ 7401 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 7402 IWMWriterAdvanced2 *This, 7403 REFIID riid, 7404 void **ppvObject); 7405 7406 ULONG (STDMETHODCALLTYPE *AddRef)( 7407 IWMWriterAdvanced2 *This); 7408 7409 ULONG (STDMETHODCALLTYPE *Release)( 7410 IWMWriterAdvanced2 *This); 7411 7412 /*** IWMWriterAdvanced methods ***/ 7413 HRESULT (STDMETHODCALLTYPE *GetSinkCount)( 7414 IWMWriterAdvanced2 *This, 7415 DWORD *pcSinks); 7416 7417 HRESULT (STDMETHODCALLTYPE *GetSink)( 7418 IWMWriterAdvanced2 *This, 7419 DWORD dwSinkNum, 7420 IWMWriterSink **ppSink); 7421 7422 HRESULT (STDMETHODCALLTYPE *AddSink)( 7423 IWMWriterAdvanced2 *This, 7424 IWMWriterSink *pSink); 7425 7426 HRESULT (STDMETHODCALLTYPE *RemoveSink)( 7427 IWMWriterAdvanced2 *This, 7428 IWMWriterSink *pSink); 7429 7430 HRESULT (STDMETHODCALLTYPE *WriteStreamSample)( 7431 IWMWriterAdvanced2 *This, 7432 WORD wStreamNum, 7433 QWORD cnsSampleTime, 7434 DWORD msSampleSendTime, 7435 QWORD cnsSampleDuration, 7436 DWORD dwFlags, 7437 INSSBuffer *pSample); 7438 7439 HRESULT (STDMETHODCALLTYPE *SetLiveSource)( 7440 IWMWriterAdvanced2 *This, 7441 WINBOOL fIsLiveSource); 7442 7443 HRESULT (STDMETHODCALLTYPE *IsRealTime)( 7444 IWMWriterAdvanced2 *This, 7445 WINBOOL *pfRealTime); 7446 7447 HRESULT (STDMETHODCALLTYPE *GetWriterTime)( 7448 IWMWriterAdvanced2 *This, 7449 QWORD *pCurrentTime); 7450 7451 HRESULT (STDMETHODCALLTYPE *GetStatistics)( 7452 IWMWriterAdvanced2 *This, 7453 WORD wStreamNum, 7454 WM_WRITER_STATISTICS *pStats); 7455 7456 HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)( 7457 IWMWriterAdvanced2 *This, 7458 DWORD msWindow); 7459 7460 HRESULT (STDMETHODCALLTYPE *GetSyncTolerance)( 7461 IWMWriterAdvanced2 *This, 7462 DWORD *pmsWindow); 7463 7464 /*** IWMWriterAdvanced2 methods ***/ 7465 HRESULT (STDMETHODCALLTYPE *GetInputSetting)( 7466 IWMWriterAdvanced2 *This, 7467 DWORD dwInputNum, 7468 LPCWSTR pszName, 7469 WMT_ATTR_DATATYPE *pType, 7470 BYTE *pValue, 7471 WORD *pcbLength); 7472 7473 HRESULT (STDMETHODCALLTYPE *SetInputSetting)( 7474 IWMWriterAdvanced2 *This, 7475 DWORD dwInputNum, 7476 LPCWSTR pszName, 7477 WMT_ATTR_DATATYPE Type, 7478 const BYTE *pValue, 7479 WORD cbLength); 7480 7481 END_INTERFACE 7482 } IWMWriterAdvanced2Vtbl; 7483 7484 interface IWMWriterAdvanced2 { 7485 CONST_VTBL IWMWriterAdvanced2Vtbl* lpVtbl; 7486 }; 7487 7488 #ifdef COBJMACROS 7489 #ifndef WIDL_C_INLINE_WRAPPERS 7490 /*** IUnknown methods ***/ 7491 #define IWMWriterAdvanced2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 7492 #define IWMWriterAdvanced2_AddRef(This) (This)->lpVtbl->AddRef(This) 7493 #define IWMWriterAdvanced2_Release(This) (This)->lpVtbl->Release(This) 7494 /*** IWMWriterAdvanced methods ***/ 7495 #define IWMWriterAdvanced2_GetSinkCount(This,pcSinks) (This)->lpVtbl->GetSinkCount(This,pcSinks) 7496 #define IWMWriterAdvanced2_GetSink(This,dwSinkNum,ppSink) (This)->lpVtbl->GetSink(This,dwSinkNum,ppSink) 7497 #define IWMWriterAdvanced2_AddSink(This,pSink) (This)->lpVtbl->AddSink(This,pSink) 7498 #define IWMWriterAdvanced2_RemoveSink(This,pSink) (This)->lpVtbl->RemoveSink(This,pSink) 7499 #define IWMWriterAdvanced2_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) (This)->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) 7500 #define IWMWriterAdvanced2_SetLiveSource(This,fIsLiveSource) (This)->lpVtbl->SetLiveSource(This,fIsLiveSource) 7501 #define IWMWriterAdvanced2_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime) 7502 #define IWMWriterAdvanced2_GetWriterTime(This,pCurrentTime) (This)->lpVtbl->GetWriterTime(This,pCurrentTime) 7503 #define IWMWriterAdvanced2_GetStatistics(This,wStreamNum,pStats) (This)->lpVtbl->GetStatistics(This,wStreamNum,pStats) 7504 #define IWMWriterAdvanced2_SetSyncTolerance(This,msWindow) (This)->lpVtbl->SetSyncTolerance(This,msWindow) 7505 #define IWMWriterAdvanced2_GetSyncTolerance(This,pmsWindow) (This)->lpVtbl->GetSyncTolerance(This,pmsWindow) 7506 /*** IWMWriterAdvanced2 methods ***/ 7507 #define IWMWriterAdvanced2_GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength) 7508 #define IWMWriterAdvanced2_SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength) 7509 #else 7510 /*** IUnknown methods ***/ 7511 static FORCEINLINE HRESULT IWMWriterAdvanced2_QueryInterface(IWMWriterAdvanced2* This,REFIID riid,void **ppvObject) { 7512 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 7513 } 7514 static FORCEINLINE ULONG IWMWriterAdvanced2_AddRef(IWMWriterAdvanced2* This) { 7515 return This->lpVtbl->AddRef(This); 7516 } 7517 static FORCEINLINE ULONG IWMWriterAdvanced2_Release(IWMWriterAdvanced2* This) { 7518 return This->lpVtbl->Release(This); 7519 } 7520 /*** IWMWriterAdvanced methods ***/ 7521 static FORCEINLINE HRESULT IWMWriterAdvanced2_GetSinkCount(IWMWriterAdvanced2* This,DWORD *pcSinks) { 7522 return This->lpVtbl->GetSinkCount(This,pcSinks); 7523 } 7524 static FORCEINLINE HRESULT IWMWriterAdvanced2_GetSink(IWMWriterAdvanced2* This,DWORD dwSinkNum,IWMWriterSink **ppSink) { 7525 return This->lpVtbl->GetSink(This,dwSinkNum,ppSink); 7526 } 7527 static FORCEINLINE HRESULT IWMWriterAdvanced2_AddSink(IWMWriterAdvanced2* This,IWMWriterSink *pSink) { 7528 return This->lpVtbl->AddSink(This,pSink); 7529 } 7530 static FORCEINLINE HRESULT IWMWriterAdvanced2_RemoveSink(IWMWriterAdvanced2* This,IWMWriterSink *pSink) { 7531 return This->lpVtbl->RemoveSink(This,pSink); 7532 } 7533 static FORCEINLINE HRESULT IWMWriterAdvanced2_WriteStreamSample(IWMWriterAdvanced2* This,WORD wStreamNum,QWORD cnsSampleTime,DWORD msSampleSendTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample) { 7534 return This->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample); 7535 } 7536 static FORCEINLINE HRESULT IWMWriterAdvanced2_SetLiveSource(IWMWriterAdvanced2* This,WINBOOL fIsLiveSource) { 7537 return This->lpVtbl->SetLiveSource(This,fIsLiveSource); 7538 } 7539 static FORCEINLINE HRESULT IWMWriterAdvanced2_IsRealTime(IWMWriterAdvanced2* This,WINBOOL *pfRealTime) { 7540 return This->lpVtbl->IsRealTime(This,pfRealTime); 7541 } 7542 static FORCEINLINE HRESULT IWMWriterAdvanced2_GetWriterTime(IWMWriterAdvanced2* This,QWORD *pCurrentTime) { 7543 return This->lpVtbl->GetWriterTime(This,pCurrentTime); 7544 } 7545 static FORCEINLINE HRESULT IWMWriterAdvanced2_GetStatistics(IWMWriterAdvanced2* This,WORD wStreamNum,WM_WRITER_STATISTICS *pStats) { 7546 return This->lpVtbl->GetStatistics(This,wStreamNum,pStats); 7547 } 7548 static FORCEINLINE HRESULT IWMWriterAdvanced2_SetSyncTolerance(IWMWriterAdvanced2* This,DWORD msWindow) { 7549 return This->lpVtbl->SetSyncTolerance(This,msWindow); 7550 } 7551 static FORCEINLINE HRESULT IWMWriterAdvanced2_GetSyncTolerance(IWMWriterAdvanced2* This,DWORD *pmsWindow) { 7552 return This->lpVtbl->GetSyncTolerance(This,pmsWindow); 7553 } 7554 /*** IWMWriterAdvanced2 methods ***/ 7555 static FORCEINLINE HRESULT IWMWriterAdvanced2_GetInputSetting(IWMWriterAdvanced2* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { 7556 return This->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength); 7557 } 7558 static FORCEINLINE HRESULT IWMWriterAdvanced2_SetInputSetting(IWMWriterAdvanced2* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { 7559 return This->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength); 7560 } 7561 #endif 7562 #endif 7563 7564 #endif 7565 7566 7567 #endif /* __IWMWriterAdvanced2_INTERFACE_DEFINED__ */ 7568 7569 /***************************************************************************** 7570 * IWMWriterAdvanced3 interface 7571 */ 7572 #ifndef __IWMWriterAdvanced3_INTERFACE_DEFINED__ 7573 #define __IWMWriterAdvanced3_INTERFACE_DEFINED__ 7574 7575 DEFINE_GUID(IID_IWMWriterAdvanced3, 0x2cd6492d, 0x7c37, 0x4e76, 0x9d,0x3b, 0x59,0x26,0x11,0x83,0xa2,0x2e); 7576 #if defined(__cplusplus) && !defined(CINTERFACE) 7577 MIDL_INTERFACE("2cd6492d-7c37-4e76-9d3b-59261183a22e") 7578 IWMWriterAdvanced3 : public IWMWriterAdvanced2 7579 { 7580 virtual HRESULT STDMETHODCALLTYPE GetStatisticsEx( 7581 WORD wStreamNum, 7582 WM_WRITER_STATISTICS_EX *pStats) = 0; 7583 7584 virtual HRESULT STDMETHODCALLTYPE SetNonBlocking( 7585 ) = 0; 7586 7587 }; 7588 #ifdef __CRT_UUID_DECL 7589 __CRT_UUID_DECL(IWMWriterAdvanced3, 0x2cd6492d, 0x7c37, 0x4e76, 0x9d,0x3b, 0x59,0x26,0x11,0x83,0xa2,0x2e) 7590 #endif 7591 #else 7592 typedef struct IWMWriterAdvanced3Vtbl { 7593 BEGIN_INTERFACE 7594 7595 /*** IUnknown methods ***/ 7596 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 7597 IWMWriterAdvanced3 *This, 7598 REFIID riid, 7599 void **ppvObject); 7600 7601 ULONG (STDMETHODCALLTYPE *AddRef)( 7602 IWMWriterAdvanced3 *This); 7603 7604 ULONG (STDMETHODCALLTYPE *Release)( 7605 IWMWriterAdvanced3 *This); 7606 7607 /*** IWMWriterAdvanced methods ***/ 7608 HRESULT (STDMETHODCALLTYPE *GetSinkCount)( 7609 IWMWriterAdvanced3 *This, 7610 DWORD *pcSinks); 7611 7612 HRESULT (STDMETHODCALLTYPE *GetSink)( 7613 IWMWriterAdvanced3 *This, 7614 DWORD dwSinkNum, 7615 IWMWriterSink **ppSink); 7616 7617 HRESULT (STDMETHODCALLTYPE *AddSink)( 7618 IWMWriterAdvanced3 *This, 7619 IWMWriterSink *pSink); 7620 7621 HRESULT (STDMETHODCALLTYPE *RemoveSink)( 7622 IWMWriterAdvanced3 *This, 7623 IWMWriterSink *pSink); 7624 7625 HRESULT (STDMETHODCALLTYPE *WriteStreamSample)( 7626 IWMWriterAdvanced3 *This, 7627 WORD wStreamNum, 7628 QWORD cnsSampleTime, 7629 DWORD msSampleSendTime, 7630 QWORD cnsSampleDuration, 7631 DWORD dwFlags, 7632 INSSBuffer *pSample); 7633 7634 HRESULT (STDMETHODCALLTYPE *SetLiveSource)( 7635 IWMWriterAdvanced3 *This, 7636 WINBOOL fIsLiveSource); 7637 7638 HRESULT (STDMETHODCALLTYPE *IsRealTime)( 7639 IWMWriterAdvanced3 *This, 7640 WINBOOL *pfRealTime); 7641 7642 HRESULT (STDMETHODCALLTYPE *GetWriterTime)( 7643 IWMWriterAdvanced3 *This, 7644 QWORD *pCurrentTime); 7645 7646 HRESULT (STDMETHODCALLTYPE *GetStatistics)( 7647 IWMWriterAdvanced3 *This, 7648 WORD wStreamNum, 7649 WM_WRITER_STATISTICS *pStats); 7650 7651 HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)( 7652 IWMWriterAdvanced3 *This, 7653 DWORD msWindow); 7654 7655 HRESULT (STDMETHODCALLTYPE *GetSyncTolerance)( 7656 IWMWriterAdvanced3 *This, 7657 DWORD *pmsWindow); 7658 7659 /*** IWMWriterAdvanced2 methods ***/ 7660 HRESULT (STDMETHODCALLTYPE *GetInputSetting)( 7661 IWMWriterAdvanced3 *This, 7662 DWORD dwInputNum, 7663 LPCWSTR pszName, 7664 WMT_ATTR_DATATYPE *pType, 7665 BYTE *pValue, 7666 WORD *pcbLength); 7667 7668 HRESULT (STDMETHODCALLTYPE *SetInputSetting)( 7669 IWMWriterAdvanced3 *This, 7670 DWORD dwInputNum, 7671 LPCWSTR pszName, 7672 WMT_ATTR_DATATYPE Type, 7673 const BYTE *pValue, 7674 WORD cbLength); 7675 7676 /*** IWMWriterAdvanced3 methods ***/ 7677 HRESULT (STDMETHODCALLTYPE *GetStatisticsEx)( 7678 IWMWriterAdvanced3 *This, 7679 WORD wStreamNum, 7680 WM_WRITER_STATISTICS_EX *pStats); 7681 7682 HRESULT (STDMETHODCALLTYPE *SetNonBlocking)( 7683 IWMWriterAdvanced3 *This); 7684 7685 END_INTERFACE 7686 } IWMWriterAdvanced3Vtbl; 7687 7688 interface IWMWriterAdvanced3 { 7689 CONST_VTBL IWMWriterAdvanced3Vtbl* lpVtbl; 7690 }; 7691 7692 #ifdef COBJMACROS 7693 #ifndef WIDL_C_INLINE_WRAPPERS 7694 /*** IUnknown methods ***/ 7695 #define IWMWriterAdvanced3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 7696 #define IWMWriterAdvanced3_AddRef(This) (This)->lpVtbl->AddRef(This) 7697 #define IWMWriterAdvanced3_Release(This) (This)->lpVtbl->Release(This) 7698 /*** IWMWriterAdvanced methods ***/ 7699 #define IWMWriterAdvanced3_GetSinkCount(This,pcSinks) (This)->lpVtbl->GetSinkCount(This,pcSinks) 7700 #define IWMWriterAdvanced3_GetSink(This,dwSinkNum,ppSink) (This)->lpVtbl->GetSink(This,dwSinkNum,ppSink) 7701 #define IWMWriterAdvanced3_AddSink(This,pSink) (This)->lpVtbl->AddSink(This,pSink) 7702 #define IWMWriterAdvanced3_RemoveSink(This,pSink) (This)->lpVtbl->RemoveSink(This,pSink) 7703 #define IWMWriterAdvanced3_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) (This)->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) 7704 #define IWMWriterAdvanced3_SetLiveSource(This,fIsLiveSource) (This)->lpVtbl->SetLiveSource(This,fIsLiveSource) 7705 #define IWMWriterAdvanced3_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime) 7706 #define IWMWriterAdvanced3_GetWriterTime(This,pCurrentTime) (This)->lpVtbl->GetWriterTime(This,pCurrentTime) 7707 #define IWMWriterAdvanced3_GetStatistics(This,wStreamNum,pStats) (This)->lpVtbl->GetStatistics(This,wStreamNum,pStats) 7708 #define IWMWriterAdvanced3_SetSyncTolerance(This,msWindow) (This)->lpVtbl->SetSyncTolerance(This,msWindow) 7709 #define IWMWriterAdvanced3_GetSyncTolerance(This,pmsWindow) (This)->lpVtbl->GetSyncTolerance(This,pmsWindow) 7710 /*** IWMWriterAdvanced2 methods ***/ 7711 #define IWMWriterAdvanced3_GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength) 7712 #define IWMWriterAdvanced3_SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength) 7713 /*** IWMWriterAdvanced3 methods ***/ 7714 #define IWMWriterAdvanced3_GetStatisticsEx(This,wStreamNum,pStats) (This)->lpVtbl->GetStatisticsEx(This,wStreamNum,pStats) 7715 #define IWMWriterAdvanced3_SetNonBlocking(This) (This)->lpVtbl->SetNonBlocking(This) 7716 #else 7717 /*** IUnknown methods ***/ 7718 static FORCEINLINE HRESULT IWMWriterAdvanced3_QueryInterface(IWMWriterAdvanced3* This,REFIID riid,void **ppvObject) { 7719 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 7720 } 7721 static FORCEINLINE ULONG IWMWriterAdvanced3_AddRef(IWMWriterAdvanced3* This) { 7722 return This->lpVtbl->AddRef(This); 7723 } 7724 static FORCEINLINE ULONG IWMWriterAdvanced3_Release(IWMWriterAdvanced3* This) { 7725 return This->lpVtbl->Release(This); 7726 } 7727 /*** IWMWriterAdvanced methods ***/ 7728 static FORCEINLINE HRESULT IWMWriterAdvanced3_GetSinkCount(IWMWriterAdvanced3* This,DWORD *pcSinks) { 7729 return This->lpVtbl->GetSinkCount(This,pcSinks); 7730 } 7731 static FORCEINLINE HRESULT IWMWriterAdvanced3_GetSink(IWMWriterAdvanced3* This,DWORD dwSinkNum,IWMWriterSink **ppSink) { 7732 return This->lpVtbl->GetSink(This,dwSinkNum,ppSink); 7733 } 7734 static FORCEINLINE HRESULT IWMWriterAdvanced3_AddSink(IWMWriterAdvanced3* This,IWMWriterSink *pSink) { 7735 return This->lpVtbl->AddSink(This,pSink); 7736 } 7737 static FORCEINLINE HRESULT IWMWriterAdvanced3_RemoveSink(IWMWriterAdvanced3* This,IWMWriterSink *pSink) { 7738 return This->lpVtbl->RemoveSink(This,pSink); 7739 } 7740 static FORCEINLINE HRESULT IWMWriterAdvanced3_WriteStreamSample(IWMWriterAdvanced3* This,WORD wStreamNum,QWORD cnsSampleTime,DWORD msSampleSendTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample) { 7741 return This->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample); 7742 } 7743 static FORCEINLINE HRESULT IWMWriterAdvanced3_SetLiveSource(IWMWriterAdvanced3* This,WINBOOL fIsLiveSource) { 7744 return This->lpVtbl->SetLiveSource(This,fIsLiveSource); 7745 } 7746 static FORCEINLINE HRESULT IWMWriterAdvanced3_IsRealTime(IWMWriterAdvanced3* This,WINBOOL *pfRealTime) { 7747 return This->lpVtbl->IsRealTime(This,pfRealTime); 7748 } 7749 static FORCEINLINE HRESULT IWMWriterAdvanced3_GetWriterTime(IWMWriterAdvanced3* This,QWORD *pCurrentTime) { 7750 return This->lpVtbl->GetWriterTime(This,pCurrentTime); 7751 } 7752 static FORCEINLINE HRESULT IWMWriterAdvanced3_GetStatistics(IWMWriterAdvanced3* This,WORD wStreamNum,WM_WRITER_STATISTICS *pStats) { 7753 return This->lpVtbl->GetStatistics(This,wStreamNum,pStats); 7754 } 7755 static FORCEINLINE HRESULT IWMWriterAdvanced3_SetSyncTolerance(IWMWriterAdvanced3* This,DWORD msWindow) { 7756 return This->lpVtbl->SetSyncTolerance(This,msWindow); 7757 } 7758 static FORCEINLINE HRESULT IWMWriterAdvanced3_GetSyncTolerance(IWMWriterAdvanced3* This,DWORD *pmsWindow) { 7759 return This->lpVtbl->GetSyncTolerance(This,pmsWindow); 7760 } 7761 /*** IWMWriterAdvanced2 methods ***/ 7762 static FORCEINLINE HRESULT IWMWriterAdvanced3_GetInputSetting(IWMWriterAdvanced3* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { 7763 return This->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength); 7764 } 7765 static FORCEINLINE HRESULT IWMWriterAdvanced3_SetInputSetting(IWMWriterAdvanced3* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { 7766 return This->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength); 7767 } 7768 /*** IWMWriterAdvanced3 methods ***/ 7769 static FORCEINLINE HRESULT IWMWriterAdvanced3_GetStatisticsEx(IWMWriterAdvanced3* This,WORD wStreamNum,WM_WRITER_STATISTICS_EX *pStats) { 7770 return This->lpVtbl->GetStatisticsEx(This,wStreamNum,pStats); 7771 } 7772 static FORCEINLINE HRESULT IWMWriterAdvanced3_SetNonBlocking(IWMWriterAdvanced3* This) { 7773 return This->lpVtbl->SetNonBlocking(This); 7774 } 7775 #endif 7776 #endif 7777 7778 #endif 7779 7780 7781 #endif /* __IWMWriterAdvanced3_INTERFACE_DEFINED__ */ 7782 7783 /***************************************************************************** 7784 * IWMHeaderInfo interface 7785 */ 7786 #ifndef __IWMHeaderInfo_INTERFACE_DEFINED__ 7787 #define __IWMHeaderInfo_INTERFACE_DEFINED__ 7788 7789 DEFINE_GUID(IID_IWMHeaderInfo, 0x96406bda, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 7790 #if defined(__cplusplus) && !defined(CINTERFACE) 7791 MIDL_INTERFACE("96406bda-2b2b-11d3-b36b-00c04f6108ff") 7792 IWMHeaderInfo : public IUnknown 7793 { 7794 virtual HRESULT STDMETHODCALLTYPE GetAttributeCount( 7795 WORD stream_num, 7796 WORD *attributes) = 0; 7797 7798 virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndex( 7799 WORD index, 7800 WORD *stream_num, 7801 WCHAR *name, 7802 WORD *name_len, 7803 WMT_ATTR_DATATYPE *type, 7804 BYTE *value, 7805 WORD *length) = 0; 7806 7807 virtual HRESULT STDMETHODCALLTYPE GetAttributeByName( 7808 WORD *stream_num, 7809 LPCWSTR name, 7810 WMT_ATTR_DATATYPE *type, 7811 BYTE *value, 7812 WORD *length) = 0; 7813 7814 virtual HRESULT STDMETHODCALLTYPE SetAttribute( 7815 WORD stream_num, 7816 LPCWSTR name, 7817 WMT_ATTR_DATATYPE type, 7818 const BYTE *value, 7819 WORD length) = 0; 7820 7821 virtual HRESULT STDMETHODCALLTYPE GetMarkerCount( 7822 WORD *markers) = 0; 7823 7824 virtual HRESULT STDMETHODCALLTYPE GetMarker( 7825 WORD index, 7826 WCHAR *marker_name, 7827 WORD *marker_len, 7828 QWORD *marker_time) = 0; 7829 7830 virtual HRESULT STDMETHODCALLTYPE AddMarker( 7831 LPCWSTR_WMSDK_TYPE_SAFE marker_name, 7832 QWORD marker_time) = 0; 7833 7834 virtual HRESULT STDMETHODCALLTYPE RemoveMarker( 7835 WORD index) = 0; 7836 7837 virtual HRESULT STDMETHODCALLTYPE GetScriptCount( 7838 WORD *scripts) = 0; 7839 7840 virtual HRESULT STDMETHODCALLTYPE GetScript( 7841 WORD index, 7842 WCHAR *type, 7843 WORD *type_len, 7844 WCHAR *command, 7845 WORD *command_len, 7846 QWORD *script_time) = 0; 7847 7848 virtual HRESULT STDMETHODCALLTYPE AddScript( 7849 LPCWSTR_WMSDK_TYPE_SAFE type, 7850 LPCWSTR_WMSDK_TYPE_SAFE command, 7851 QWORD script_time) = 0; 7852 7853 virtual HRESULT STDMETHODCALLTYPE RemoveScript( 7854 WORD index) = 0; 7855 7856 }; 7857 #ifdef __CRT_UUID_DECL 7858 __CRT_UUID_DECL(IWMHeaderInfo, 0x96406bda, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 7859 #endif 7860 #else 7861 typedef struct IWMHeaderInfoVtbl { 7862 BEGIN_INTERFACE 7863 7864 /*** IUnknown methods ***/ 7865 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 7866 IWMHeaderInfo *This, 7867 REFIID riid, 7868 void **ppvObject); 7869 7870 ULONG (STDMETHODCALLTYPE *AddRef)( 7871 IWMHeaderInfo *This); 7872 7873 ULONG (STDMETHODCALLTYPE *Release)( 7874 IWMHeaderInfo *This); 7875 7876 /*** IWMHeaderInfo methods ***/ 7877 HRESULT (STDMETHODCALLTYPE *GetAttributeCount)( 7878 IWMHeaderInfo *This, 7879 WORD stream_num, 7880 WORD *attributes); 7881 7882 HRESULT (STDMETHODCALLTYPE *GetAttributeByIndex)( 7883 IWMHeaderInfo *This, 7884 WORD index, 7885 WORD *stream_num, 7886 WCHAR *name, 7887 WORD *name_len, 7888 WMT_ATTR_DATATYPE *type, 7889 BYTE *value, 7890 WORD *length); 7891 7892 HRESULT (STDMETHODCALLTYPE *GetAttributeByName)( 7893 IWMHeaderInfo *This, 7894 WORD *stream_num, 7895 LPCWSTR name, 7896 WMT_ATTR_DATATYPE *type, 7897 BYTE *value, 7898 WORD *length); 7899 7900 HRESULT (STDMETHODCALLTYPE *SetAttribute)( 7901 IWMHeaderInfo *This, 7902 WORD stream_num, 7903 LPCWSTR name, 7904 WMT_ATTR_DATATYPE type, 7905 const BYTE *value, 7906 WORD length); 7907 7908 HRESULT (STDMETHODCALLTYPE *GetMarkerCount)( 7909 IWMHeaderInfo *This, 7910 WORD *markers); 7911 7912 HRESULT (STDMETHODCALLTYPE *GetMarker)( 7913 IWMHeaderInfo *This, 7914 WORD index, 7915 WCHAR *marker_name, 7916 WORD *marker_len, 7917 QWORD *marker_time); 7918 7919 HRESULT (STDMETHODCALLTYPE *AddMarker)( 7920 IWMHeaderInfo *This, 7921 LPCWSTR_WMSDK_TYPE_SAFE marker_name, 7922 QWORD marker_time); 7923 7924 HRESULT (STDMETHODCALLTYPE *RemoveMarker)( 7925 IWMHeaderInfo *This, 7926 WORD index); 7927 7928 HRESULT (STDMETHODCALLTYPE *GetScriptCount)( 7929 IWMHeaderInfo *This, 7930 WORD *scripts); 7931 7932 HRESULT (STDMETHODCALLTYPE *GetScript)( 7933 IWMHeaderInfo *This, 7934 WORD index, 7935 WCHAR *type, 7936 WORD *type_len, 7937 WCHAR *command, 7938 WORD *command_len, 7939 QWORD *script_time); 7940 7941 HRESULT (STDMETHODCALLTYPE *AddScript)( 7942 IWMHeaderInfo *This, 7943 LPCWSTR_WMSDK_TYPE_SAFE type, 7944 LPCWSTR_WMSDK_TYPE_SAFE command, 7945 QWORD script_time); 7946 7947 HRESULT (STDMETHODCALLTYPE *RemoveScript)( 7948 IWMHeaderInfo *This, 7949 WORD index); 7950 7951 END_INTERFACE 7952 } IWMHeaderInfoVtbl; 7953 7954 interface IWMHeaderInfo { 7955 CONST_VTBL IWMHeaderInfoVtbl* lpVtbl; 7956 }; 7957 7958 #ifdef COBJMACROS 7959 #ifndef WIDL_C_INLINE_WRAPPERS 7960 /*** IUnknown methods ***/ 7961 #define IWMHeaderInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 7962 #define IWMHeaderInfo_AddRef(This) (This)->lpVtbl->AddRef(This) 7963 #define IWMHeaderInfo_Release(This) (This)->lpVtbl->Release(This) 7964 /*** IWMHeaderInfo methods ***/ 7965 #define IWMHeaderInfo_GetAttributeCount(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCount(This,stream_num,attributes) 7966 #define IWMHeaderInfo_GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length) (This)->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length) 7967 #define IWMHeaderInfo_GetAttributeByName(This,stream_num,name,type,value,length) (This)->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length) 7968 #define IWMHeaderInfo_SetAttribute(This,stream_num,name,type,value,length) (This)->lpVtbl->SetAttribute(This,stream_num,name,type,value,length) 7969 #define IWMHeaderInfo_GetMarkerCount(This,markers) (This)->lpVtbl->GetMarkerCount(This,markers) 7970 #define IWMHeaderInfo_GetMarker(This,index,marker_name,marker_len,marker_time) (This)->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time) 7971 #define IWMHeaderInfo_AddMarker(This,marker_name,marker_time) (This)->lpVtbl->AddMarker(This,marker_name,marker_time) 7972 #define IWMHeaderInfo_RemoveMarker(This,index) (This)->lpVtbl->RemoveMarker(This,index) 7973 #define IWMHeaderInfo_GetScriptCount(This,scripts) (This)->lpVtbl->GetScriptCount(This,scripts) 7974 #define IWMHeaderInfo_GetScript(This,index,type,type_len,command,command_len,script_time) (This)->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time) 7975 #define IWMHeaderInfo_AddScript(This,type,command,script_time) (This)->lpVtbl->AddScript(This,type,command,script_time) 7976 #define IWMHeaderInfo_RemoveScript(This,index) (This)->lpVtbl->RemoveScript(This,index) 7977 #else 7978 /*** IUnknown methods ***/ 7979 static FORCEINLINE HRESULT IWMHeaderInfo_QueryInterface(IWMHeaderInfo* This,REFIID riid,void **ppvObject) { 7980 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 7981 } 7982 static FORCEINLINE ULONG IWMHeaderInfo_AddRef(IWMHeaderInfo* This) { 7983 return This->lpVtbl->AddRef(This); 7984 } 7985 static FORCEINLINE ULONG IWMHeaderInfo_Release(IWMHeaderInfo* This) { 7986 return This->lpVtbl->Release(This); 7987 } 7988 /*** IWMHeaderInfo methods ***/ 7989 static FORCEINLINE HRESULT IWMHeaderInfo_GetAttributeCount(IWMHeaderInfo* This,WORD stream_num,WORD *attributes) { 7990 return This->lpVtbl->GetAttributeCount(This,stream_num,attributes); 7991 } 7992 static FORCEINLINE HRESULT IWMHeaderInfo_GetAttributeByIndex(IWMHeaderInfo* This,WORD index,WORD *stream_num,WCHAR *name,WORD *name_len,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { 7993 return This->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length); 7994 } 7995 static FORCEINLINE HRESULT IWMHeaderInfo_GetAttributeByName(IWMHeaderInfo* This,WORD *stream_num,LPCWSTR name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { 7996 return This->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length); 7997 } 7998 static FORCEINLINE HRESULT IWMHeaderInfo_SetAttribute(IWMHeaderInfo* This,WORD stream_num,LPCWSTR name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) { 7999 return This->lpVtbl->SetAttribute(This,stream_num,name,type,value,length); 8000 } 8001 static FORCEINLINE HRESULT IWMHeaderInfo_GetMarkerCount(IWMHeaderInfo* This,WORD *markers) { 8002 return This->lpVtbl->GetMarkerCount(This,markers); 8003 } 8004 static FORCEINLINE HRESULT IWMHeaderInfo_GetMarker(IWMHeaderInfo* This,WORD index,WCHAR *marker_name,WORD *marker_len,QWORD *marker_time) { 8005 return This->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time); 8006 } 8007 static FORCEINLINE HRESULT IWMHeaderInfo_AddMarker(IWMHeaderInfo* This,LPCWSTR_WMSDK_TYPE_SAFE marker_name,QWORD marker_time) { 8008 return This->lpVtbl->AddMarker(This,marker_name,marker_time); 8009 } 8010 static FORCEINLINE HRESULT IWMHeaderInfo_RemoveMarker(IWMHeaderInfo* This,WORD index) { 8011 return This->lpVtbl->RemoveMarker(This,index); 8012 } 8013 static FORCEINLINE HRESULT IWMHeaderInfo_GetScriptCount(IWMHeaderInfo* This,WORD *scripts) { 8014 return This->lpVtbl->GetScriptCount(This,scripts); 8015 } 8016 static FORCEINLINE HRESULT IWMHeaderInfo_GetScript(IWMHeaderInfo* This,WORD index,WCHAR *type,WORD *type_len,WCHAR *command,WORD *command_len,QWORD *script_time) { 8017 return This->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time); 8018 } 8019 static FORCEINLINE HRESULT IWMHeaderInfo_AddScript(IWMHeaderInfo* This,LPCWSTR_WMSDK_TYPE_SAFE type,LPCWSTR_WMSDK_TYPE_SAFE command,QWORD script_time) { 8020 return This->lpVtbl->AddScript(This,type,command,script_time); 8021 } 8022 static FORCEINLINE HRESULT IWMHeaderInfo_RemoveScript(IWMHeaderInfo* This,WORD index) { 8023 return This->lpVtbl->RemoveScript(This,index); 8024 } 8025 #endif 8026 #endif 8027 8028 #endif 8029 8030 8031 #endif /* __IWMHeaderInfo_INTERFACE_DEFINED__ */ 8032 8033 /***************************************************************************** 8034 * IWMHeaderInfo2 interface 8035 */ 8036 #ifndef __IWMHeaderInfo2_INTERFACE_DEFINED__ 8037 #define __IWMHeaderInfo2_INTERFACE_DEFINED__ 8038 8039 DEFINE_GUID(IID_IWMHeaderInfo2, 0x15cf9781, 0x454e, 0x482e, 0xb3,0x93, 0x85,0xfa,0xe4,0x87,0xa8,0x10); 8040 #if defined(__cplusplus) && !defined(CINTERFACE) 8041 MIDL_INTERFACE("15cf9781-454e-482e-b393-85fae487a810") 8042 IWMHeaderInfo2 : public IWMHeaderInfo 8043 { 8044 virtual HRESULT STDMETHODCALLTYPE GetCodecInfoCount( 8045 DWORD *codec_infos) = 0; 8046 8047 virtual HRESULT STDMETHODCALLTYPE GetCodecInfo( 8048 DWORD index, 8049 WORD *name_len, 8050 WCHAR *name, 8051 WORD *description_len, 8052 WCHAR *description, 8053 WMT_CODEC_INFO_TYPE *codec_type, 8054 WORD *codec_info_cnt, 8055 BYTE *codec_info) = 0; 8056 8057 }; 8058 #ifdef __CRT_UUID_DECL 8059 __CRT_UUID_DECL(IWMHeaderInfo2, 0x15cf9781, 0x454e, 0x482e, 0xb3,0x93, 0x85,0xfa,0xe4,0x87,0xa8,0x10) 8060 #endif 8061 #else 8062 typedef struct IWMHeaderInfo2Vtbl { 8063 BEGIN_INTERFACE 8064 8065 /*** IUnknown methods ***/ 8066 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 8067 IWMHeaderInfo2 *This, 8068 REFIID riid, 8069 void **ppvObject); 8070 8071 ULONG (STDMETHODCALLTYPE *AddRef)( 8072 IWMHeaderInfo2 *This); 8073 8074 ULONG (STDMETHODCALLTYPE *Release)( 8075 IWMHeaderInfo2 *This); 8076 8077 /*** IWMHeaderInfo methods ***/ 8078 HRESULT (STDMETHODCALLTYPE *GetAttributeCount)( 8079 IWMHeaderInfo2 *This, 8080 WORD stream_num, 8081 WORD *attributes); 8082 8083 HRESULT (STDMETHODCALLTYPE *GetAttributeByIndex)( 8084 IWMHeaderInfo2 *This, 8085 WORD index, 8086 WORD *stream_num, 8087 WCHAR *name, 8088 WORD *name_len, 8089 WMT_ATTR_DATATYPE *type, 8090 BYTE *value, 8091 WORD *length); 8092 8093 HRESULT (STDMETHODCALLTYPE *GetAttributeByName)( 8094 IWMHeaderInfo2 *This, 8095 WORD *stream_num, 8096 LPCWSTR name, 8097 WMT_ATTR_DATATYPE *type, 8098 BYTE *value, 8099 WORD *length); 8100 8101 HRESULT (STDMETHODCALLTYPE *SetAttribute)( 8102 IWMHeaderInfo2 *This, 8103 WORD stream_num, 8104 LPCWSTR name, 8105 WMT_ATTR_DATATYPE type, 8106 const BYTE *value, 8107 WORD length); 8108 8109 HRESULT (STDMETHODCALLTYPE *GetMarkerCount)( 8110 IWMHeaderInfo2 *This, 8111 WORD *markers); 8112 8113 HRESULT (STDMETHODCALLTYPE *GetMarker)( 8114 IWMHeaderInfo2 *This, 8115 WORD index, 8116 WCHAR *marker_name, 8117 WORD *marker_len, 8118 QWORD *marker_time); 8119 8120 HRESULT (STDMETHODCALLTYPE *AddMarker)( 8121 IWMHeaderInfo2 *This, 8122 LPCWSTR_WMSDK_TYPE_SAFE marker_name, 8123 QWORD marker_time); 8124 8125 HRESULT (STDMETHODCALLTYPE *RemoveMarker)( 8126 IWMHeaderInfo2 *This, 8127 WORD index); 8128 8129 HRESULT (STDMETHODCALLTYPE *GetScriptCount)( 8130 IWMHeaderInfo2 *This, 8131 WORD *scripts); 8132 8133 HRESULT (STDMETHODCALLTYPE *GetScript)( 8134 IWMHeaderInfo2 *This, 8135 WORD index, 8136 WCHAR *type, 8137 WORD *type_len, 8138 WCHAR *command, 8139 WORD *command_len, 8140 QWORD *script_time); 8141 8142 HRESULT (STDMETHODCALLTYPE *AddScript)( 8143 IWMHeaderInfo2 *This, 8144 LPCWSTR_WMSDK_TYPE_SAFE type, 8145 LPCWSTR_WMSDK_TYPE_SAFE command, 8146 QWORD script_time); 8147 8148 HRESULT (STDMETHODCALLTYPE *RemoveScript)( 8149 IWMHeaderInfo2 *This, 8150 WORD index); 8151 8152 /*** IWMHeaderInfo2 methods ***/ 8153 HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)( 8154 IWMHeaderInfo2 *This, 8155 DWORD *codec_infos); 8156 8157 HRESULT (STDMETHODCALLTYPE *GetCodecInfo)( 8158 IWMHeaderInfo2 *This, 8159 DWORD index, 8160 WORD *name_len, 8161 WCHAR *name, 8162 WORD *description_len, 8163 WCHAR *description, 8164 WMT_CODEC_INFO_TYPE *codec_type, 8165 WORD *codec_info_cnt, 8166 BYTE *codec_info); 8167 8168 END_INTERFACE 8169 } IWMHeaderInfo2Vtbl; 8170 8171 interface IWMHeaderInfo2 { 8172 CONST_VTBL IWMHeaderInfo2Vtbl* lpVtbl; 8173 }; 8174 8175 #ifdef COBJMACROS 8176 #ifndef WIDL_C_INLINE_WRAPPERS 8177 /*** IUnknown methods ***/ 8178 #define IWMHeaderInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 8179 #define IWMHeaderInfo2_AddRef(This) (This)->lpVtbl->AddRef(This) 8180 #define IWMHeaderInfo2_Release(This) (This)->lpVtbl->Release(This) 8181 /*** IWMHeaderInfo methods ***/ 8182 #define IWMHeaderInfo2_GetAttributeCount(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCount(This,stream_num,attributes) 8183 #define IWMHeaderInfo2_GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length) (This)->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length) 8184 #define IWMHeaderInfo2_GetAttributeByName(This,stream_num,name,type,value,length) (This)->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length) 8185 #define IWMHeaderInfo2_SetAttribute(This,stream_num,name,type,value,length) (This)->lpVtbl->SetAttribute(This,stream_num,name,type,value,length) 8186 #define IWMHeaderInfo2_GetMarkerCount(This,markers) (This)->lpVtbl->GetMarkerCount(This,markers) 8187 #define IWMHeaderInfo2_GetMarker(This,index,marker_name,marker_len,marker_time) (This)->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time) 8188 #define IWMHeaderInfo2_AddMarker(This,marker_name,marker_time) (This)->lpVtbl->AddMarker(This,marker_name,marker_time) 8189 #define IWMHeaderInfo2_RemoveMarker(This,index) (This)->lpVtbl->RemoveMarker(This,index) 8190 #define IWMHeaderInfo2_GetScriptCount(This,scripts) (This)->lpVtbl->GetScriptCount(This,scripts) 8191 #define IWMHeaderInfo2_GetScript(This,index,type,type_len,command,command_len,script_time) (This)->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time) 8192 #define IWMHeaderInfo2_AddScript(This,type,command,script_time) (This)->lpVtbl->AddScript(This,type,command,script_time) 8193 #define IWMHeaderInfo2_RemoveScript(This,index) (This)->lpVtbl->RemoveScript(This,index) 8194 /*** IWMHeaderInfo2 methods ***/ 8195 #define IWMHeaderInfo2_GetCodecInfoCount(This,codec_infos) (This)->lpVtbl->GetCodecInfoCount(This,codec_infos) 8196 #define IWMHeaderInfo2_GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info) (This)->lpVtbl->GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info) 8197 #else 8198 /*** IUnknown methods ***/ 8199 static FORCEINLINE HRESULT IWMHeaderInfo2_QueryInterface(IWMHeaderInfo2* This,REFIID riid,void **ppvObject) { 8200 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 8201 } 8202 static FORCEINLINE ULONG IWMHeaderInfo2_AddRef(IWMHeaderInfo2* This) { 8203 return This->lpVtbl->AddRef(This); 8204 } 8205 static FORCEINLINE ULONG IWMHeaderInfo2_Release(IWMHeaderInfo2* This) { 8206 return This->lpVtbl->Release(This); 8207 } 8208 /*** IWMHeaderInfo methods ***/ 8209 static FORCEINLINE HRESULT IWMHeaderInfo2_GetAttributeCount(IWMHeaderInfo2* This,WORD stream_num,WORD *attributes) { 8210 return This->lpVtbl->GetAttributeCount(This,stream_num,attributes); 8211 } 8212 static FORCEINLINE HRESULT IWMHeaderInfo2_GetAttributeByIndex(IWMHeaderInfo2* This,WORD index,WORD *stream_num,WCHAR *name,WORD *name_len,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { 8213 return This->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length); 8214 } 8215 static FORCEINLINE HRESULT IWMHeaderInfo2_GetAttributeByName(IWMHeaderInfo2* This,WORD *stream_num,LPCWSTR name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { 8216 return This->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length); 8217 } 8218 static FORCEINLINE HRESULT IWMHeaderInfo2_SetAttribute(IWMHeaderInfo2* This,WORD stream_num,LPCWSTR name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) { 8219 return This->lpVtbl->SetAttribute(This,stream_num,name,type,value,length); 8220 } 8221 static FORCEINLINE HRESULT IWMHeaderInfo2_GetMarkerCount(IWMHeaderInfo2* This,WORD *markers) { 8222 return This->lpVtbl->GetMarkerCount(This,markers); 8223 } 8224 static FORCEINLINE HRESULT IWMHeaderInfo2_GetMarker(IWMHeaderInfo2* This,WORD index,WCHAR *marker_name,WORD *marker_len,QWORD *marker_time) { 8225 return This->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time); 8226 } 8227 static FORCEINLINE HRESULT IWMHeaderInfo2_AddMarker(IWMHeaderInfo2* This,LPCWSTR_WMSDK_TYPE_SAFE marker_name,QWORD marker_time) { 8228 return This->lpVtbl->AddMarker(This,marker_name,marker_time); 8229 } 8230 static FORCEINLINE HRESULT IWMHeaderInfo2_RemoveMarker(IWMHeaderInfo2* This,WORD index) { 8231 return This->lpVtbl->RemoveMarker(This,index); 8232 } 8233 static FORCEINLINE HRESULT IWMHeaderInfo2_GetScriptCount(IWMHeaderInfo2* This,WORD *scripts) { 8234 return This->lpVtbl->GetScriptCount(This,scripts); 8235 } 8236 static FORCEINLINE HRESULT IWMHeaderInfo2_GetScript(IWMHeaderInfo2* This,WORD index,WCHAR *type,WORD *type_len,WCHAR *command,WORD *command_len,QWORD *script_time) { 8237 return This->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time); 8238 } 8239 static FORCEINLINE HRESULT IWMHeaderInfo2_AddScript(IWMHeaderInfo2* This,LPCWSTR_WMSDK_TYPE_SAFE type,LPCWSTR_WMSDK_TYPE_SAFE command,QWORD script_time) { 8240 return This->lpVtbl->AddScript(This,type,command,script_time); 8241 } 8242 static FORCEINLINE HRESULT IWMHeaderInfo2_RemoveScript(IWMHeaderInfo2* This,WORD index) { 8243 return This->lpVtbl->RemoveScript(This,index); 8244 } 8245 /*** IWMHeaderInfo2 methods ***/ 8246 static FORCEINLINE HRESULT IWMHeaderInfo2_GetCodecInfoCount(IWMHeaderInfo2* This,DWORD *codec_infos) { 8247 return This->lpVtbl->GetCodecInfoCount(This,codec_infos); 8248 } 8249 static FORCEINLINE HRESULT IWMHeaderInfo2_GetCodecInfo(IWMHeaderInfo2* This,DWORD index,WORD *name_len,WCHAR *name,WORD *description_len,WCHAR *description,WMT_CODEC_INFO_TYPE *codec_type,WORD *codec_info_cnt,BYTE *codec_info) { 8250 return This->lpVtbl->GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info); 8251 } 8252 #endif 8253 #endif 8254 8255 #endif 8256 8257 8258 #endif /* __IWMHeaderInfo2_INTERFACE_DEFINED__ */ 8259 8260 /***************************************************************************** 8261 * IWMHeaderInfo3 interface 8262 */ 8263 #ifndef __IWMHeaderInfo3_INTERFACE_DEFINED__ 8264 #define __IWMHeaderInfo3_INTERFACE_DEFINED__ 8265 8266 DEFINE_GUID(IID_IWMHeaderInfo3, 0x15cc68e3, 0x27cc, 0x4ecd, 0xb2,0x22, 0x3f,0x5d,0x02,0xd8,0x0b,0xd5); 8267 #if defined(__cplusplus) && !defined(CINTERFACE) 8268 MIDL_INTERFACE("15cc68e3-27cc-4ecd-b222-3f5d02d80bd5") 8269 IWMHeaderInfo3 : public IWMHeaderInfo2 8270 { 8271 virtual HRESULT STDMETHODCALLTYPE GetAttributeCountEx( 8272 WORD stream_num, 8273 WORD *attributes) = 0; 8274 8275 virtual HRESULT STDMETHODCALLTYPE GetAttributeIndices( 8276 WORD stream_num, 8277 LPCWSTR name, 8278 WORD *lang_index, 8279 WORD *indices, 8280 WORD *count) = 0; 8281 8282 virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndexEx( 8283 WORD stream_num, 8284 WORD index, 8285 LPWSTR name, 8286 WORD *name_len, 8287 WMT_ATTR_DATATYPE *type, 8288 WORD *lang_index, 8289 BYTE *value, 8290 DWORD *data_len) = 0; 8291 8292 virtual HRESULT STDMETHODCALLTYPE ModifyAttribute( 8293 WORD stream_num, 8294 WORD index, 8295 WMT_ATTR_DATATYPE type, 8296 WORD lang_index, 8297 const BYTE *value, 8298 DWORD length) = 0; 8299 8300 virtual HRESULT STDMETHODCALLTYPE AddAttribute( 8301 WORD stream_num, 8302 LPCWSTR name, 8303 WORD *index, 8304 WMT_ATTR_DATATYPE type, 8305 WORD lang_index, 8306 const BYTE *value, 8307 DWORD length) = 0; 8308 8309 virtual HRESULT STDMETHODCALLTYPE DeleteAttribute( 8310 WORD stream_num, 8311 WORD index) = 0; 8312 8313 virtual HRESULT STDMETHODCALLTYPE AddCodecInfo( 8314 LPCWSTR_WMSDK_TYPE_SAFE name, 8315 LPCWSTR_WMSDK_TYPE_SAFE description, 8316 WMT_CODEC_INFO_TYPE codec_type, 8317 WORD codec_info_cnt, 8318 BYTE *codec_info) = 0; 8319 8320 }; 8321 #ifdef __CRT_UUID_DECL 8322 __CRT_UUID_DECL(IWMHeaderInfo3, 0x15cc68e3, 0x27cc, 0x4ecd, 0xb2,0x22, 0x3f,0x5d,0x02,0xd8,0x0b,0xd5) 8323 #endif 8324 #else 8325 typedef struct IWMHeaderInfo3Vtbl { 8326 BEGIN_INTERFACE 8327 8328 /*** IUnknown methods ***/ 8329 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 8330 IWMHeaderInfo3 *This, 8331 REFIID riid, 8332 void **ppvObject); 8333 8334 ULONG (STDMETHODCALLTYPE *AddRef)( 8335 IWMHeaderInfo3 *This); 8336 8337 ULONG (STDMETHODCALLTYPE *Release)( 8338 IWMHeaderInfo3 *This); 8339 8340 /*** IWMHeaderInfo methods ***/ 8341 HRESULT (STDMETHODCALLTYPE *GetAttributeCount)( 8342 IWMHeaderInfo3 *This, 8343 WORD stream_num, 8344 WORD *attributes); 8345 8346 HRESULT (STDMETHODCALLTYPE *GetAttributeByIndex)( 8347 IWMHeaderInfo3 *This, 8348 WORD index, 8349 WORD *stream_num, 8350 WCHAR *name, 8351 WORD *name_len, 8352 WMT_ATTR_DATATYPE *type, 8353 BYTE *value, 8354 WORD *length); 8355 8356 HRESULT (STDMETHODCALLTYPE *GetAttributeByName)( 8357 IWMHeaderInfo3 *This, 8358 WORD *stream_num, 8359 LPCWSTR name, 8360 WMT_ATTR_DATATYPE *type, 8361 BYTE *value, 8362 WORD *length); 8363 8364 HRESULT (STDMETHODCALLTYPE *SetAttribute)( 8365 IWMHeaderInfo3 *This, 8366 WORD stream_num, 8367 LPCWSTR name, 8368 WMT_ATTR_DATATYPE type, 8369 const BYTE *value, 8370 WORD length); 8371 8372 HRESULT (STDMETHODCALLTYPE *GetMarkerCount)( 8373 IWMHeaderInfo3 *This, 8374 WORD *markers); 8375 8376 HRESULT (STDMETHODCALLTYPE *GetMarker)( 8377 IWMHeaderInfo3 *This, 8378 WORD index, 8379 WCHAR *marker_name, 8380 WORD *marker_len, 8381 QWORD *marker_time); 8382 8383 HRESULT (STDMETHODCALLTYPE *AddMarker)( 8384 IWMHeaderInfo3 *This, 8385 LPCWSTR_WMSDK_TYPE_SAFE marker_name, 8386 QWORD marker_time); 8387 8388 HRESULT (STDMETHODCALLTYPE *RemoveMarker)( 8389 IWMHeaderInfo3 *This, 8390 WORD index); 8391 8392 HRESULT (STDMETHODCALLTYPE *GetScriptCount)( 8393 IWMHeaderInfo3 *This, 8394 WORD *scripts); 8395 8396 HRESULT (STDMETHODCALLTYPE *GetScript)( 8397 IWMHeaderInfo3 *This, 8398 WORD index, 8399 WCHAR *type, 8400 WORD *type_len, 8401 WCHAR *command, 8402 WORD *command_len, 8403 QWORD *script_time); 8404 8405 HRESULT (STDMETHODCALLTYPE *AddScript)( 8406 IWMHeaderInfo3 *This, 8407 LPCWSTR_WMSDK_TYPE_SAFE type, 8408 LPCWSTR_WMSDK_TYPE_SAFE command, 8409 QWORD script_time); 8410 8411 HRESULT (STDMETHODCALLTYPE *RemoveScript)( 8412 IWMHeaderInfo3 *This, 8413 WORD index); 8414 8415 /*** IWMHeaderInfo2 methods ***/ 8416 HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)( 8417 IWMHeaderInfo3 *This, 8418 DWORD *codec_infos); 8419 8420 HRESULT (STDMETHODCALLTYPE *GetCodecInfo)( 8421 IWMHeaderInfo3 *This, 8422 DWORD index, 8423 WORD *name_len, 8424 WCHAR *name, 8425 WORD *description_len, 8426 WCHAR *description, 8427 WMT_CODEC_INFO_TYPE *codec_type, 8428 WORD *codec_info_cnt, 8429 BYTE *codec_info); 8430 8431 /*** IWMHeaderInfo3 methods ***/ 8432 HRESULT (STDMETHODCALLTYPE *GetAttributeCountEx)( 8433 IWMHeaderInfo3 *This, 8434 WORD stream_num, 8435 WORD *attributes); 8436 8437 HRESULT (STDMETHODCALLTYPE *GetAttributeIndices)( 8438 IWMHeaderInfo3 *This, 8439 WORD stream_num, 8440 LPCWSTR name, 8441 WORD *lang_index, 8442 WORD *indices, 8443 WORD *count); 8444 8445 HRESULT (STDMETHODCALLTYPE *GetAttributeByIndexEx)( 8446 IWMHeaderInfo3 *This, 8447 WORD stream_num, 8448 WORD index, 8449 LPWSTR name, 8450 WORD *name_len, 8451 WMT_ATTR_DATATYPE *type, 8452 WORD *lang_index, 8453 BYTE *value, 8454 DWORD *data_len); 8455 8456 HRESULT (STDMETHODCALLTYPE *ModifyAttribute)( 8457 IWMHeaderInfo3 *This, 8458 WORD stream_num, 8459 WORD index, 8460 WMT_ATTR_DATATYPE type, 8461 WORD lang_index, 8462 const BYTE *value, 8463 DWORD length); 8464 8465 HRESULT (STDMETHODCALLTYPE *AddAttribute)( 8466 IWMHeaderInfo3 *This, 8467 WORD stream_num, 8468 LPCWSTR name, 8469 WORD *index, 8470 WMT_ATTR_DATATYPE type, 8471 WORD lang_index, 8472 const BYTE *value, 8473 DWORD length); 8474 8475 HRESULT (STDMETHODCALLTYPE *DeleteAttribute)( 8476 IWMHeaderInfo3 *This, 8477 WORD stream_num, 8478 WORD index); 8479 8480 HRESULT (STDMETHODCALLTYPE *AddCodecInfo)( 8481 IWMHeaderInfo3 *This, 8482 LPCWSTR_WMSDK_TYPE_SAFE name, 8483 LPCWSTR_WMSDK_TYPE_SAFE description, 8484 WMT_CODEC_INFO_TYPE codec_type, 8485 WORD codec_info_cnt, 8486 BYTE *codec_info); 8487 8488 END_INTERFACE 8489 } IWMHeaderInfo3Vtbl; 8490 8491 interface IWMHeaderInfo3 { 8492 CONST_VTBL IWMHeaderInfo3Vtbl* lpVtbl; 8493 }; 8494 8495 #ifdef COBJMACROS 8496 #ifndef WIDL_C_INLINE_WRAPPERS 8497 /*** IUnknown methods ***/ 8498 #define IWMHeaderInfo3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 8499 #define IWMHeaderInfo3_AddRef(This) (This)->lpVtbl->AddRef(This) 8500 #define IWMHeaderInfo3_Release(This) (This)->lpVtbl->Release(This) 8501 /*** IWMHeaderInfo methods ***/ 8502 #define IWMHeaderInfo3_GetAttributeCount(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCount(This,stream_num,attributes) 8503 #define IWMHeaderInfo3_GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length) (This)->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length) 8504 #define IWMHeaderInfo3_GetAttributeByName(This,stream_num,name,type,value,length) (This)->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length) 8505 #define IWMHeaderInfo3_SetAttribute(This,stream_num,name,type,value,length) (This)->lpVtbl->SetAttribute(This,stream_num,name,type,value,length) 8506 #define IWMHeaderInfo3_GetMarkerCount(This,markers) (This)->lpVtbl->GetMarkerCount(This,markers) 8507 #define IWMHeaderInfo3_GetMarker(This,index,marker_name,marker_len,marker_time) (This)->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time) 8508 #define IWMHeaderInfo3_AddMarker(This,marker_name,marker_time) (This)->lpVtbl->AddMarker(This,marker_name,marker_time) 8509 #define IWMHeaderInfo3_RemoveMarker(This,index) (This)->lpVtbl->RemoveMarker(This,index) 8510 #define IWMHeaderInfo3_GetScriptCount(This,scripts) (This)->lpVtbl->GetScriptCount(This,scripts) 8511 #define IWMHeaderInfo3_GetScript(This,index,type,type_len,command,command_len,script_time) (This)->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time) 8512 #define IWMHeaderInfo3_AddScript(This,type,command,script_time) (This)->lpVtbl->AddScript(This,type,command,script_time) 8513 #define IWMHeaderInfo3_RemoveScript(This,index) (This)->lpVtbl->RemoveScript(This,index) 8514 /*** IWMHeaderInfo2 methods ***/ 8515 #define IWMHeaderInfo3_GetCodecInfoCount(This,codec_infos) (This)->lpVtbl->GetCodecInfoCount(This,codec_infos) 8516 #define IWMHeaderInfo3_GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info) (This)->lpVtbl->GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info) 8517 /*** IWMHeaderInfo3 methods ***/ 8518 #define IWMHeaderInfo3_GetAttributeCountEx(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCountEx(This,stream_num,attributes) 8519 #define IWMHeaderInfo3_GetAttributeIndices(This,stream_num,name,lang_index,indices,count) (This)->lpVtbl->GetAttributeIndices(This,stream_num,name,lang_index,indices,count) 8520 #define IWMHeaderInfo3_GetAttributeByIndexEx(This,stream_num,index,name,name_len,type,lang_index,value,data_len) (This)->lpVtbl->GetAttributeByIndexEx(This,stream_num,index,name,name_len,type,lang_index,value,data_len) 8521 #define IWMHeaderInfo3_ModifyAttribute(This,stream_num,index,type,lang_index,value,length) (This)->lpVtbl->ModifyAttribute(This,stream_num,index,type,lang_index,value,length) 8522 #define IWMHeaderInfo3_AddAttribute(This,stream_num,name,index,type,lang_index,value,length) (This)->lpVtbl->AddAttribute(This,stream_num,name,index,type,lang_index,value,length) 8523 #define IWMHeaderInfo3_DeleteAttribute(This,stream_num,index) (This)->lpVtbl->DeleteAttribute(This,stream_num,index) 8524 #define IWMHeaderInfo3_AddCodecInfo(This,name,description,codec_type,codec_info_cnt,codec_info) (This)->lpVtbl->AddCodecInfo(This,name,description,codec_type,codec_info_cnt,codec_info) 8525 #else 8526 /*** IUnknown methods ***/ 8527 static FORCEINLINE HRESULT IWMHeaderInfo3_QueryInterface(IWMHeaderInfo3* This,REFIID riid,void **ppvObject) { 8528 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 8529 } 8530 static FORCEINLINE ULONG IWMHeaderInfo3_AddRef(IWMHeaderInfo3* This) { 8531 return This->lpVtbl->AddRef(This); 8532 } 8533 static FORCEINLINE ULONG IWMHeaderInfo3_Release(IWMHeaderInfo3* This) { 8534 return This->lpVtbl->Release(This); 8535 } 8536 /*** IWMHeaderInfo methods ***/ 8537 static FORCEINLINE HRESULT IWMHeaderInfo3_GetAttributeCount(IWMHeaderInfo3* This,WORD stream_num,WORD *attributes) { 8538 return This->lpVtbl->GetAttributeCount(This,stream_num,attributes); 8539 } 8540 static FORCEINLINE HRESULT IWMHeaderInfo3_GetAttributeByIndex(IWMHeaderInfo3* This,WORD index,WORD *stream_num,WCHAR *name,WORD *name_len,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { 8541 return This->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length); 8542 } 8543 static FORCEINLINE HRESULT IWMHeaderInfo3_GetAttributeByName(IWMHeaderInfo3* This,WORD *stream_num,LPCWSTR name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { 8544 return This->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length); 8545 } 8546 static FORCEINLINE HRESULT IWMHeaderInfo3_SetAttribute(IWMHeaderInfo3* This,WORD stream_num,LPCWSTR name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) { 8547 return This->lpVtbl->SetAttribute(This,stream_num,name,type,value,length); 8548 } 8549 static FORCEINLINE HRESULT IWMHeaderInfo3_GetMarkerCount(IWMHeaderInfo3* This,WORD *markers) { 8550 return This->lpVtbl->GetMarkerCount(This,markers); 8551 } 8552 static FORCEINLINE HRESULT IWMHeaderInfo3_GetMarker(IWMHeaderInfo3* This,WORD index,WCHAR *marker_name,WORD *marker_len,QWORD *marker_time) { 8553 return This->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time); 8554 } 8555 static FORCEINLINE HRESULT IWMHeaderInfo3_AddMarker(IWMHeaderInfo3* This,LPCWSTR_WMSDK_TYPE_SAFE marker_name,QWORD marker_time) { 8556 return This->lpVtbl->AddMarker(This,marker_name,marker_time); 8557 } 8558 static FORCEINLINE HRESULT IWMHeaderInfo3_RemoveMarker(IWMHeaderInfo3* This,WORD index) { 8559 return This->lpVtbl->RemoveMarker(This,index); 8560 } 8561 static FORCEINLINE HRESULT IWMHeaderInfo3_GetScriptCount(IWMHeaderInfo3* This,WORD *scripts) { 8562 return This->lpVtbl->GetScriptCount(This,scripts); 8563 } 8564 static FORCEINLINE HRESULT IWMHeaderInfo3_GetScript(IWMHeaderInfo3* This,WORD index,WCHAR *type,WORD *type_len,WCHAR *command,WORD *command_len,QWORD *script_time) { 8565 return This->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time); 8566 } 8567 static FORCEINLINE HRESULT IWMHeaderInfo3_AddScript(IWMHeaderInfo3* This,LPCWSTR_WMSDK_TYPE_SAFE type,LPCWSTR_WMSDK_TYPE_SAFE command,QWORD script_time) { 8568 return This->lpVtbl->AddScript(This,type,command,script_time); 8569 } 8570 static FORCEINLINE HRESULT IWMHeaderInfo3_RemoveScript(IWMHeaderInfo3* This,WORD index) { 8571 return This->lpVtbl->RemoveScript(This,index); 8572 } 8573 /*** IWMHeaderInfo2 methods ***/ 8574 static FORCEINLINE HRESULT IWMHeaderInfo3_GetCodecInfoCount(IWMHeaderInfo3* This,DWORD *codec_infos) { 8575 return This->lpVtbl->GetCodecInfoCount(This,codec_infos); 8576 } 8577 static FORCEINLINE HRESULT IWMHeaderInfo3_GetCodecInfo(IWMHeaderInfo3* This,DWORD index,WORD *name_len,WCHAR *name,WORD *description_len,WCHAR *description,WMT_CODEC_INFO_TYPE *codec_type,WORD *codec_info_cnt,BYTE *codec_info) { 8578 return This->lpVtbl->GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info); 8579 } 8580 /*** IWMHeaderInfo3 methods ***/ 8581 static FORCEINLINE HRESULT IWMHeaderInfo3_GetAttributeCountEx(IWMHeaderInfo3* This,WORD stream_num,WORD *attributes) { 8582 return This->lpVtbl->GetAttributeCountEx(This,stream_num,attributes); 8583 } 8584 static FORCEINLINE HRESULT IWMHeaderInfo3_GetAttributeIndices(IWMHeaderInfo3* This,WORD stream_num,LPCWSTR name,WORD *lang_index,WORD *indices,WORD *count) { 8585 return This->lpVtbl->GetAttributeIndices(This,stream_num,name,lang_index,indices,count); 8586 } 8587 static FORCEINLINE HRESULT IWMHeaderInfo3_GetAttributeByIndexEx(IWMHeaderInfo3* This,WORD stream_num,WORD index,LPWSTR name,WORD *name_len,WMT_ATTR_DATATYPE *type,WORD *lang_index,BYTE *value,DWORD *data_len) { 8588 return This->lpVtbl->GetAttributeByIndexEx(This,stream_num,index,name,name_len,type,lang_index,value,data_len); 8589 } 8590 static FORCEINLINE HRESULT IWMHeaderInfo3_ModifyAttribute(IWMHeaderInfo3* This,WORD stream_num,WORD index,WMT_ATTR_DATATYPE type,WORD lang_index,const BYTE *value,DWORD length) { 8591 return This->lpVtbl->ModifyAttribute(This,stream_num,index,type,lang_index,value,length); 8592 } 8593 static FORCEINLINE HRESULT IWMHeaderInfo3_AddAttribute(IWMHeaderInfo3* This,WORD stream_num,LPCWSTR name,WORD *index,WMT_ATTR_DATATYPE type,WORD lang_index,const BYTE *value,DWORD length) { 8594 return This->lpVtbl->AddAttribute(This,stream_num,name,index,type,lang_index,value,length); 8595 } 8596 static FORCEINLINE HRESULT IWMHeaderInfo3_DeleteAttribute(IWMHeaderInfo3* This,WORD stream_num,WORD index) { 8597 return This->lpVtbl->DeleteAttribute(This,stream_num,index); 8598 } 8599 static FORCEINLINE HRESULT IWMHeaderInfo3_AddCodecInfo(IWMHeaderInfo3* This,LPCWSTR_WMSDK_TYPE_SAFE name,LPCWSTR_WMSDK_TYPE_SAFE description,WMT_CODEC_INFO_TYPE codec_type,WORD codec_info_cnt,BYTE *codec_info) { 8600 return This->lpVtbl->AddCodecInfo(This,name,description,codec_type,codec_info_cnt,codec_info); 8601 } 8602 #endif 8603 #endif 8604 8605 #endif 8606 8607 8608 #endif /* __IWMHeaderInfo3_INTERFACE_DEFINED__ */ 8609 8610 /***************************************************************************** 8611 * IWMReaderNetworkConfig interface 8612 */ 8613 #ifndef __IWMReaderNetworkConfig_INTERFACE_DEFINED__ 8614 #define __IWMReaderNetworkConfig_INTERFACE_DEFINED__ 8615 8616 DEFINE_GUID(IID_IWMReaderNetworkConfig, 0x96406bec, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 8617 #if defined(__cplusplus) && !defined(CINTERFACE) 8618 MIDL_INTERFACE("96406bec-2b2b-11d3-b36b-00c04f6108ff") 8619 IWMReaderNetworkConfig : public IUnknown 8620 { 8621 virtual HRESULT STDMETHODCALLTYPE GetBufferingTime( 8622 QWORD *buffering_time) = 0; 8623 8624 virtual HRESULT STDMETHODCALLTYPE SetBufferingTime( 8625 QWORD buffering_time) = 0; 8626 8627 virtual HRESULT STDMETHODCALLTYPE GetUDPPortRanges( 8628 WM_PORT_NUMBER_RANGE *array, 8629 DWORD *ranges) = 0; 8630 8631 virtual HRESULT STDMETHODCALLTYPE SetUDPPortRanges( 8632 WM_PORT_NUMBER_RANGE *array, 8633 DWORD ranges) = 0; 8634 8635 virtual HRESULT STDMETHODCALLTYPE GetProxySettings( 8636 const WCHAR *protocol, 8637 WMT_PROXY_SETTINGS *proxy) = 0; 8638 8639 virtual HRESULT STDMETHODCALLTYPE SetProxySettings( 8640 LPCWSTR protocol, 8641 WMT_PROXY_SETTINGS proxy) = 0; 8642 8643 virtual HRESULT STDMETHODCALLTYPE GetProxyHostName( 8644 const WCHAR *protocol, 8645 WCHAR *hostname, 8646 DWORD *size) = 0; 8647 8648 virtual HRESULT STDMETHODCALLTYPE SetProxyHostName( 8649 const WCHAR *protocol, 8650 const WCHAR *hostname) = 0; 8651 8652 virtual HRESULT STDMETHODCALLTYPE GetProxyPort( 8653 const WCHAR *protocol, 8654 DWORD *port) = 0; 8655 8656 virtual HRESULT STDMETHODCALLTYPE SetProxyPort( 8657 const WCHAR *protocol, 8658 DWORD port) = 0; 8659 8660 virtual HRESULT STDMETHODCALLTYPE GetProxyExceptionList( 8661 const WCHAR *protocol, 8662 WCHAR *exceptions, 8663 DWORD *count) = 0; 8664 8665 virtual HRESULT STDMETHODCALLTYPE SetProxyExceptionList( 8666 const WCHAR *protocol, 8667 const WCHAR *exceptions) = 0; 8668 8669 virtual HRESULT STDMETHODCALLTYPE GetProxyBypassForLocal( 8670 const WCHAR *protocol, 8671 WINBOOL *bypass) = 0; 8672 8673 virtual HRESULT STDMETHODCALLTYPE SetProxyBypassForLocal( 8674 const WCHAR *protocol, 8675 WINBOOL bypass) = 0; 8676 8677 virtual HRESULT STDMETHODCALLTYPE GetForceRerunAutoProxyDetection( 8678 WINBOOL *detection) = 0; 8679 8680 virtual HRESULT STDMETHODCALLTYPE SetForceRerunAutoProxyDetection( 8681 WINBOOL detection) = 0; 8682 8683 virtual HRESULT STDMETHODCALLTYPE GetEnableMulticast( 8684 WINBOOL *multicast) = 0; 8685 8686 virtual HRESULT STDMETHODCALLTYPE SetEnableMulticast( 8687 WINBOOL multicast) = 0; 8688 8689 virtual HRESULT STDMETHODCALLTYPE GetEnableHTTP( 8690 WINBOOL *enable) = 0; 8691 8692 virtual HRESULT STDMETHODCALLTYPE SetEnableHTTP( 8693 WINBOOL enable) = 0; 8694 8695 virtual HRESULT STDMETHODCALLTYPE GetEnableUDP( 8696 WINBOOL *enable) = 0; 8697 8698 virtual HRESULT STDMETHODCALLTYPE SetEnableUDP( 8699 WINBOOL enable) = 0; 8700 8701 virtual HRESULT STDMETHODCALLTYPE GetEnableTCP( 8702 WINBOOL *enable) = 0; 8703 8704 virtual HRESULT STDMETHODCALLTYPE SetEnableTCP( 8705 WINBOOL enable) = 0; 8706 8707 virtual HRESULT STDMETHODCALLTYPE ResetProtocolRollover( 8708 ) = 0; 8709 8710 virtual HRESULT STDMETHODCALLTYPE GetConnectionBandwidth( 8711 DWORD *bandwidth) = 0; 8712 8713 virtual HRESULT STDMETHODCALLTYPE SetConnectionBandwidth( 8714 DWORD bandwidth) = 0; 8715 8716 virtual HRESULT STDMETHODCALLTYPE GetNumProtocolsSupported( 8717 DWORD *protocols) = 0; 8718 8719 virtual HRESULT STDMETHODCALLTYPE GetSupportedProtocolName( 8720 DWORD protocol_num, 8721 WCHAR *protocol, 8722 DWORD *size) = 0; 8723 8724 virtual HRESULT STDMETHODCALLTYPE AddLoggingUrl( 8725 const WCHAR *url) = 0; 8726 8727 virtual HRESULT STDMETHODCALLTYPE GetLoggingUrl( 8728 DWORD index, 8729 WCHAR *url, 8730 DWORD *size) = 0; 8731 8732 virtual HRESULT STDMETHODCALLTYPE GetLoggingUrlCount( 8733 DWORD *count) = 0; 8734 8735 virtual HRESULT STDMETHODCALLTYPE ResetLoggingUrlList( 8736 ) = 0; 8737 8738 }; 8739 #ifdef __CRT_UUID_DECL 8740 __CRT_UUID_DECL(IWMReaderNetworkConfig, 0x96406bec, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 8741 #endif 8742 #else 8743 typedef struct IWMReaderNetworkConfigVtbl { 8744 BEGIN_INTERFACE 8745 8746 /*** IUnknown methods ***/ 8747 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 8748 IWMReaderNetworkConfig *This, 8749 REFIID riid, 8750 void **ppvObject); 8751 8752 ULONG (STDMETHODCALLTYPE *AddRef)( 8753 IWMReaderNetworkConfig *This); 8754 8755 ULONG (STDMETHODCALLTYPE *Release)( 8756 IWMReaderNetworkConfig *This); 8757 8758 /*** IWMReaderNetworkConfig methods ***/ 8759 HRESULT (STDMETHODCALLTYPE *GetBufferingTime)( 8760 IWMReaderNetworkConfig *This, 8761 QWORD *buffering_time); 8762 8763 HRESULT (STDMETHODCALLTYPE *SetBufferingTime)( 8764 IWMReaderNetworkConfig *This, 8765 QWORD buffering_time); 8766 8767 HRESULT (STDMETHODCALLTYPE *GetUDPPortRanges)( 8768 IWMReaderNetworkConfig *This, 8769 WM_PORT_NUMBER_RANGE *array, 8770 DWORD *ranges); 8771 8772 HRESULT (STDMETHODCALLTYPE *SetUDPPortRanges)( 8773 IWMReaderNetworkConfig *This, 8774 WM_PORT_NUMBER_RANGE *array, 8775 DWORD ranges); 8776 8777 HRESULT (STDMETHODCALLTYPE *GetProxySettings)( 8778 IWMReaderNetworkConfig *This, 8779 const WCHAR *protocol, 8780 WMT_PROXY_SETTINGS *proxy); 8781 8782 HRESULT (STDMETHODCALLTYPE *SetProxySettings)( 8783 IWMReaderNetworkConfig *This, 8784 LPCWSTR protocol, 8785 WMT_PROXY_SETTINGS proxy); 8786 8787 HRESULT (STDMETHODCALLTYPE *GetProxyHostName)( 8788 IWMReaderNetworkConfig *This, 8789 const WCHAR *protocol, 8790 WCHAR *hostname, 8791 DWORD *size); 8792 8793 HRESULT (STDMETHODCALLTYPE *SetProxyHostName)( 8794 IWMReaderNetworkConfig *This, 8795 const WCHAR *protocol, 8796 const WCHAR *hostname); 8797 8798 HRESULT (STDMETHODCALLTYPE *GetProxyPort)( 8799 IWMReaderNetworkConfig *This, 8800 const WCHAR *protocol, 8801 DWORD *port); 8802 8803 HRESULT (STDMETHODCALLTYPE *SetProxyPort)( 8804 IWMReaderNetworkConfig *This, 8805 const WCHAR *protocol, 8806 DWORD port); 8807 8808 HRESULT (STDMETHODCALLTYPE *GetProxyExceptionList)( 8809 IWMReaderNetworkConfig *This, 8810 const WCHAR *protocol, 8811 WCHAR *exceptions, 8812 DWORD *count); 8813 8814 HRESULT (STDMETHODCALLTYPE *SetProxyExceptionList)( 8815 IWMReaderNetworkConfig *This, 8816 const WCHAR *protocol, 8817 const WCHAR *exceptions); 8818 8819 HRESULT (STDMETHODCALLTYPE *GetProxyBypassForLocal)( 8820 IWMReaderNetworkConfig *This, 8821 const WCHAR *protocol, 8822 WINBOOL *bypass); 8823 8824 HRESULT (STDMETHODCALLTYPE *SetProxyBypassForLocal)( 8825 IWMReaderNetworkConfig *This, 8826 const WCHAR *protocol, 8827 WINBOOL bypass); 8828 8829 HRESULT (STDMETHODCALLTYPE *GetForceRerunAutoProxyDetection)( 8830 IWMReaderNetworkConfig *This, 8831 WINBOOL *detection); 8832 8833 HRESULT (STDMETHODCALLTYPE *SetForceRerunAutoProxyDetection)( 8834 IWMReaderNetworkConfig *This, 8835 WINBOOL detection); 8836 8837 HRESULT (STDMETHODCALLTYPE *GetEnableMulticast)( 8838 IWMReaderNetworkConfig *This, 8839 WINBOOL *multicast); 8840 8841 HRESULT (STDMETHODCALLTYPE *SetEnableMulticast)( 8842 IWMReaderNetworkConfig *This, 8843 WINBOOL multicast); 8844 8845 HRESULT (STDMETHODCALLTYPE *GetEnableHTTP)( 8846 IWMReaderNetworkConfig *This, 8847 WINBOOL *enable); 8848 8849 HRESULT (STDMETHODCALLTYPE *SetEnableHTTP)( 8850 IWMReaderNetworkConfig *This, 8851 WINBOOL enable); 8852 8853 HRESULT (STDMETHODCALLTYPE *GetEnableUDP)( 8854 IWMReaderNetworkConfig *This, 8855 WINBOOL *enable); 8856 8857 HRESULT (STDMETHODCALLTYPE *SetEnableUDP)( 8858 IWMReaderNetworkConfig *This, 8859 WINBOOL enable); 8860 8861 HRESULT (STDMETHODCALLTYPE *GetEnableTCP)( 8862 IWMReaderNetworkConfig *This, 8863 WINBOOL *enable); 8864 8865 HRESULT (STDMETHODCALLTYPE *SetEnableTCP)( 8866 IWMReaderNetworkConfig *This, 8867 WINBOOL enable); 8868 8869 HRESULT (STDMETHODCALLTYPE *ResetProtocolRollover)( 8870 IWMReaderNetworkConfig *This); 8871 8872 HRESULT (STDMETHODCALLTYPE *GetConnectionBandwidth)( 8873 IWMReaderNetworkConfig *This, 8874 DWORD *bandwidth); 8875 8876 HRESULT (STDMETHODCALLTYPE *SetConnectionBandwidth)( 8877 IWMReaderNetworkConfig *This, 8878 DWORD bandwidth); 8879 8880 HRESULT (STDMETHODCALLTYPE *GetNumProtocolsSupported)( 8881 IWMReaderNetworkConfig *This, 8882 DWORD *protocols); 8883 8884 HRESULT (STDMETHODCALLTYPE *GetSupportedProtocolName)( 8885 IWMReaderNetworkConfig *This, 8886 DWORD protocol_num, 8887 WCHAR *protocol, 8888 DWORD *size); 8889 8890 HRESULT (STDMETHODCALLTYPE *AddLoggingUrl)( 8891 IWMReaderNetworkConfig *This, 8892 const WCHAR *url); 8893 8894 HRESULT (STDMETHODCALLTYPE *GetLoggingUrl)( 8895 IWMReaderNetworkConfig *This, 8896 DWORD index, 8897 WCHAR *url, 8898 DWORD *size); 8899 8900 HRESULT (STDMETHODCALLTYPE *GetLoggingUrlCount)( 8901 IWMReaderNetworkConfig *This, 8902 DWORD *count); 8903 8904 HRESULT (STDMETHODCALLTYPE *ResetLoggingUrlList)( 8905 IWMReaderNetworkConfig *This); 8906 8907 END_INTERFACE 8908 } IWMReaderNetworkConfigVtbl; 8909 8910 interface IWMReaderNetworkConfig { 8911 CONST_VTBL IWMReaderNetworkConfigVtbl* lpVtbl; 8912 }; 8913 8914 #ifdef COBJMACROS 8915 #ifndef WIDL_C_INLINE_WRAPPERS 8916 /*** IUnknown methods ***/ 8917 #define IWMReaderNetworkConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 8918 #define IWMReaderNetworkConfig_AddRef(This) (This)->lpVtbl->AddRef(This) 8919 #define IWMReaderNetworkConfig_Release(This) (This)->lpVtbl->Release(This) 8920 /*** IWMReaderNetworkConfig methods ***/ 8921 #define IWMReaderNetworkConfig_GetBufferingTime(This,buffering_time) (This)->lpVtbl->GetBufferingTime(This,buffering_time) 8922 #define IWMReaderNetworkConfig_SetBufferingTime(This,buffering_time) (This)->lpVtbl->SetBufferingTime(This,buffering_time) 8923 #define IWMReaderNetworkConfig_GetUDPPortRanges(This,array,ranges) (This)->lpVtbl->GetUDPPortRanges(This,array,ranges) 8924 #define IWMReaderNetworkConfig_SetUDPPortRanges(This,array,ranges) (This)->lpVtbl->SetUDPPortRanges(This,array,ranges) 8925 #define IWMReaderNetworkConfig_GetProxySettings(This,protocol,proxy) (This)->lpVtbl->GetProxySettings(This,protocol,proxy) 8926 #define IWMReaderNetworkConfig_SetProxySettings(This,protocol,proxy) (This)->lpVtbl->SetProxySettings(This,protocol,proxy) 8927 #define IWMReaderNetworkConfig_GetProxyHostName(This,protocol,hostname,size) (This)->lpVtbl->GetProxyHostName(This,protocol,hostname,size) 8928 #define IWMReaderNetworkConfig_SetProxyHostName(This,protocol,hostname) (This)->lpVtbl->SetProxyHostName(This,protocol,hostname) 8929 #define IWMReaderNetworkConfig_GetProxyPort(This,protocol,port) (This)->lpVtbl->GetProxyPort(This,protocol,port) 8930 #define IWMReaderNetworkConfig_SetProxyPort(This,protocol,port) (This)->lpVtbl->SetProxyPort(This,protocol,port) 8931 #define IWMReaderNetworkConfig_GetProxyExceptionList(This,protocol,exceptions,count) (This)->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count) 8932 #define IWMReaderNetworkConfig_SetProxyExceptionList(This,protocol,exceptions) (This)->lpVtbl->SetProxyExceptionList(This,protocol,exceptions) 8933 #define IWMReaderNetworkConfig_GetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass) 8934 #define IWMReaderNetworkConfig_SetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass) 8935 #define IWMReaderNetworkConfig_GetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->GetForceRerunAutoProxyDetection(This,detection) 8936 #define IWMReaderNetworkConfig_SetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->SetForceRerunAutoProxyDetection(This,detection) 8937 #define IWMReaderNetworkConfig_GetEnableMulticast(This,multicast) (This)->lpVtbl->GetEnableMulticast(This,multicast) 8938 #define IWMReaderNetworkConfig_SetEnableMulticast(This,multicast) (This)->lpVtbl->SetEnableMulticast(This,multicast) 8939 #define IWMReaderNetworkConfig_GetEnableHTTP(This,enable) (This)->lpVtbl->GetEnableHTTP(This,enable) 8940 #define IWMReaderNetworkConfig_SetEnableHTTP(This,enable) (This)->lpVtbl->SetEnableHTTP(This,enable) 8941 #define IWMReaderNetworkConfig_GetEnableUDP(This,enable) (This)->lpVtbl->GetEnableUDP(This,enable) 8942 #define IWMReaderNetworkConfig_SetEnableUDP(This,enable) (This)->lpVtbl->SetEnableUDP(This,enable) 8943 #define IWMReaderNetworkConfig_GetEnableTCP(This,enable) (This)->lpVtbl->GetEnableTCP(This,enable) 8944 #define IWMReaderNetworkConfig_SetEnableTCP(This,enable) (This)->lpVtbl->SetEnableTCP(This,enable) 8945 #define IWMReaderNetworkConfig_ResetProtocolRollover(This) (This)->lpVtbl->ResetProtocolRollover(This) 8946 #define IWMReaderNetworkConfig_GetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->GetConnectionBandwidth(This,bandwidth) 8947 #define IWMReaderNetworkConfig_SetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->SetConnectionBandwidth(This,bandwidth) 8948 #define IWMReaderNetworkConfig_GetNumProtocolsSupported(This,protocols) (This)->lpVtbl->GetNumProtocolsSupported(This,protocols) 8949 #define IWMReaderNetworkConfig_GetSupportedProtocolName(This,protocol_num,protocol,size) (This)->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size) 8950 #define IWMReaderNetworkConfig_AddLoggingUrl(This,url) (This)->lpVtbl->AddLoggingUrl(This,url) 8951 #define IWMReaderNetworkConfig_GetLoggingUrl(This,index,url,size) (This)->lpVtbl->GetLoggingUrl(This,index,url,size) 8952 #define IWMReaderNetworkConfig_GetLoggingUrlCount(This,count) (This)->lpVtbl->GetLoggingUrlCount(This,count) 8953 #define IWMReaderNetworkConfig_ResetLoggingUrlList(This) (This)->lpVtbl->ResetLoggingUrlList(This) 8954 #else 8955 /*** IUnknown methods ***/ 8956 static FORCEINLINE HRESULT IWMReaderNetworkConfig_QueryInterface(IWMReaderNetworkConfig* This,REFIID riid,void **ppvObject) { 8957 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 8958 } 8959 static FORCEINLINE ULONG IWMReaderNetworkConfig_AddRef(IWMReaderNetworkConfig* This) { 8960 return This->lpVtbl->AddRef(This); 8961 } 8962 static FORCEINLINE ULONG IWMReaderNetworkConfig_Release(IWMReaderNetworkConfig* This) { 8963 return This->lpVtbl->Release(This); 8964 } 8965 /*** IWMReaderNetworkConfig methods ***/ 8966 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetBufferingTime(IWMReaderNetworkConfig* This,QWORD *buffering_time) { 8967 return This->lpVtbl->GetBufferingTime(This,buffering_time); 8968 } 8969 static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetBufferingTime(IWMReaderNetworkConfig* This,QWORD buffering_time) { 8970 return This->lpVtbl->SetBufferingTime(This,buffering_time); 8971 } 8972 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetUDPPortRanges(IWMReaderNetworkConfig* This,WM_PORT_NUMBER_RANGE *array,DWORD *ranges) { 8973 return This->lpVtbl->GetUDPPortRanges(This,array,ranges); 8974 } 8975 static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetUDPPortRanges(IWMReaderNetworkConfig* This,WM_PORT_NUMBER_RANGE *array,DWORD ranges) { 8976 return This->lpVtbl->SetUDPPortRanges(This,array,ranges); 8977 } 8978 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetProxySettings(IWMReaderNetworkConfig* This,const WCHAR *protocol,WMT_PROXY_SETTINGS *proxy) { 8979 return This->lpVtbl->GetProxySettings(This,protocol,proxy); 8980 } 8981 static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetProxySettings(IWMReaderNetworkConfig* This,LPCWSTR protocol,WMT_PROXY_SETTINGS proxy) { 8982 return This->lpVtbl->SetProxySettings(This,protocol,proxy); 8983 } 8984 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetProxyHostName(IWMReaderNetworkConfig* This,const WCHAR *protocol,WCHAR *hostname,DWORD *size) { 8985 return This->lpVtbl->GetProxyHostName(This,protocol,hostname,size); 8986 } 8987 static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetProxyHostName(IWMReaderNetworkConfig* This,const WCHAR *protocol,const WCHAR *hostname) { 8988 return This->lpVtbl->SetProxyHostName(This,protocol,hostname); 8989 } 8990 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetProxyPort(IWMReaderNetworkConfig* This,const WCHAR *protocol,DWORD *port) { 8991 return This->lpVtbl->GetProxyPort(This,protocol,port); 8992 } 8993 static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetProxyPort(IWMReaderNetworkConfig* This,const WCHAR *protocol,DWORD port) { 8994 return This->lpVtbl->SetProxyPort(This,protocol,port); 8995 } 8996 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetProxyExceptionList(IWMReaderNetworkConfig* This,const WCHAR *protocol,WCHAR *exceptions,DWORD *count) { 8997 return This->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count); 8998 } 8999 static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetProxyExceptionList(IWMReaderNetworkConfig* This,const WCHAR *protocol,const WCHAR *exceptions) { 9000 return This->lpVtbl->SetProxyExceptionList(This,protocol,exceptions); 9001 } 9002 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetProxyBypassForLocal(IWMReaderNetworkConfig* This,const WCHAR *protocol,WINBOOL *bypass) { 9003 return This->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass); 9004 } 9005 static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetProxyBypassForLocal(IWMReaderNetworkConfig* This,const WCHAR *protocol,WINBOOL bypass) { 9006 return This->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass); 9007 } 9008 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetForceRerunAutoProxyDetection(IWMReaderNetworkConfig* This,WINBOOL *detection) { 9009 return This->lpVtbl->GetForceRerunAutoProxyDetection(This,detection); 9010 } 9011 static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetForceRerunAutoProxyDetection(IWMReaderNetworkConfig* This,WINBOOL detection) { 9012 return This->lpVtbl->SetForceRerunAutoProxyDetection(This,detection); 9013 } 9014 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetEnableMulticast(IWMReaderNetworkConfig* This,WINBOOL *multicast) { 9015 return This->lpVtbl->GetEnableMulticast(This,multicast); 9016 } 9017 static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetEnableMulticast(IWMReaderNetworkConfig* This,WINBOOL multicast) { 9018 return This->lpVtbl->SetEnableMulticast(This,multicast); 9019 } 9020 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetEnableHTTP(IWMReaderNetworkConfig* This,WINBOOL *enable) { 9021 return This->lpVtbl->GetEnableHTTP(This,enable); 9022 } 9023 static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetEnableHTTP(IWMReaderNetworkConfig* This,WINBOOL enable) { 9024 return This->lpVtbl->SetEnableHTTP(This,enable); 9025 } 9026 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetEnableUDP(IWMReaderNetworkConfig* This,WINBOOL *enable) { 9027 return This->lpVtbl->GetEnableUDP(This,enable); 9028 } 9029 static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetEnableUDP(IWMReaderNetworkConfig* This,WINBOOL enable) { 9030 return This->lpVtbl->SetEnableUDP(This,enable); 9031 } 9032 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetEnableTCP(IWMReaderNetworkConfig* This,WINBOOL *enable) { 9033 return This->lpVtbl->GetEnableTCP(This,enable); 9034 } 9035 static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetEnableTCP(IWMReaderNetworkConfig* This,WINBOOL enable) { 9036 return This->lpVtbl->SetEnableTCP(This,enable); 9037 } 9038 static FORCEINLINE HRESULT IWMReaderNetworkConfig_ResetProtocolRollover(IWMReaderNetworkConfig* This) { 9039 return This->lpVtbl->ResetProtocolRollover(This); 9040 } 9041 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetConnectionBandwidth(IWMReaderNetworkConfig* This,DWORD *bandwidth) { 9042 return This->lpVtbl->GetConnectionBandwidth(This,bandwidth); 9043 } 9044 static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetConnectionBandwidth(IWMReaderNetworkConfig* This,DWORD bandwidth) { 9045 return This->lpVtbl->SetConnectionBandwidth(This,bandwidth); 9046 } 9047 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetNumProtocolsSupported(IWMReaderNetworkConfig* This,DWORD *protocols) { 9048 return This->lpVtbl->GetNumProtocolsSupported(This,protocols); 9049 } 9050 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetSupportedProtocolName(IWMReaderNetworkConfig* This,DWORD protocol_num,WCHAR *protocol,DWORD *size) { 9051 return This->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size); 9052 } 9053 static FORCEINLINE HRESULT IWMReaderNetworkConfig_AddLoggingUrl(IWMReaderNetworkConfig* This,const WCHAR *url) { 9054 return This->lpVtbl->AddLoggingUrl(This,url); 9055 } 9056 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetLoggingUrl(IWMReaderNetworkConfig* This,DWORD index,WCHAR *url,DWORD *size) { 9057 return This->lpVtbl->GetLoggingUrl(This,index,url,size); 9058 } 9059 static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetLoggingUrlCount(IWMReaderNetworkConfig* This,DWORD *count) { 9060 return This->lpVtbl->GetLoggingUrlCount(This,count); 9061 } 9062 static FORCEINLINE HRESULT IWMReaderNetworkConfig_ResetLoggingUrlList(IWMReaderNetworkConfig* This) { 9063 return This->lpVtbl->ResetLoggingUrlList(This); 9064 } 9065 #endif 9066 #endif 9067 9068 #endif 9069 9070 9071 #endif /* __IWMReaderNetworkConfig_INTERFACE_DEFINED__ */ 9072 9073 /***************************************************************************** 9074 * IWMReaderNetworkConfig2 interface 9075 */ 9076 #ifndef __IWMReaderNetworkConfig2_INTERFACE_DEFINED__ 9077 #define __IWMReaderNetworkConfig2_INTERFACE_DEFINED__ 9078 9079 DEFINE_GUID(IID_IWMReaderNetworkConfig2, 0xd979a853, 0x042b, 0x4050, 0x83,0x87, 0xc9,0x39,0xdb,0x22,0x01,0x3f); 9080 #if defined(__cplusplus) && !defined(CINTERFACE) 9081 MIDL_INTERFACE("d979a853-042b-4050-8387-c939db22013f") 9082 IWMReaderNetworkConfig2 : public IWMReaderNetworkConfig 9083 { 9084 virtual HRESULT STDMETHODCALLTYPE GetEnableContentCaching( 9085 WINBOOL *enable) = 0; 9086 9087 virtual HRESULT STDMETHODCALLTYPE SetEnableContentCaching( 9088 WINBOOL enable) = 0; 9089 9090 virtual HRESULT STDMETHODCALLTYPE GetEnableFastCache( 9091 WINBOOL *enable) = 0; 9092 9093 virtual HRESULT STDMETHODCALLTYPE SetEnableFastCache( 9094 WINBOOL enable) = 0; 9095 9096 virtual HRESULT STDMETHODCALLTYPE GetAcceleratedStreamingDuration( 9097 QWORD *duration) = 0; 9098 9099 virtual HRESULT STDMETHODCALLTYPE SetAcceleratedStreamingDuration( 9100 QWORD duration) = 0; 9101 9102 virtual HRESULT STDMETHODCALLTYPE GetAutoReconnectLimit( 9103 DWORD *limit) = 0; 9104 9105 virtual HRESULT STDMETHODCALLTYPE SetAutoReconnectLimit( 9106 DWORD limit) = 0; 9107 9108 virtual HRESULT STDMETHODCALLTYPE GetEnableResends( 9109 WINBOOL *enable) = 0; 9110 9111 virtual HRESULT STDMETHODCALLTYPE SetEnableResends( 9112 WINBOOL enable) = 0; 9113 9114 virtual HRESULT STDMETHODCALLTYPE GetEnableThinning( 9115 WINBOOL *enable) = 0; 9116 9117 virtual HRESULT STDMETHODCALLTYPE SetEnableThinning( 9118 WINBOOL enable) = 0; 9119 9120 virtual HRESULT STDMETHODCALLTYPE GetMaxNetPacketSize( 9121 DWORD *packet_size) = 0; 9122 9123 }; 9124 #ifdef __CRT_UUID_DECL 9125 __CRT_UUID_DECL(IWMReaderNetworkConfig2, 0xd979a853, 0x042b, 0x4050, 0x83,0x87, 0xc9,0x39,0xdb,0x22,0x01,0x3f) 9126 #endif 9127 #else 9128 typedef struct IWMReaderNetworkConfig2Vtbl { 9129 BEGIN_INTERFACE 9130 9131 /*** IUnknown methods ***/ 9132 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 9133 IWMReaderNetworkConfig2 *This, 9134 REFIID riid, 9135 void **ppvObject); 9136 9137 ULONG (STDMETHODCALLTYPE *AddRef)( 9138 IWMReaderNetworkConfig2 *This); 9139 9140 ULONG (STDMETHODCALLTYPE *Release)( 9141 IWMReaderNetworkConfig2 *This); 9142 9143 /*** IWMReaderNetworkConfig methods ***/ 9144 HRESULT (STDMETHODCALLTYPE *GetBufferingTime)( 9145 IWMReaderNetworkConfig2 *This, 9146 QWORD *buffering_time); 9147 9148 HRESULT (STDMETHODCALLTYPE *SetBufferingTime)( 9149 IWMReaderNetworkConfig2 *This, 9150 QWORD buffering_time); 9151 9152 HRESULT (STDMETHODCALLTYPE *GetUDPPortRanges)( 9153 IWMReaderNetworkConfig2 *This, 9154 WM_PORT_NUMBER_RANGE *array, 9155 DWORD *ranges); 9156 9157 HRESULT (STDMETHODCALLTYPE *SetUDPPortRanges)( 9158 IWMReaderNetworkConfig2 *This, 9159 WM_PORT_NUMBER_RANGE *array, 9160 DWORD ranges); 9161 9162 HRESULT (STDMETHODCALLTYPE *GetProxySettings)( 9163 IWMReaderNetworkConfig2 *This, 9164 const WCHAR *protocol, 9165 WMT_PROXY_SETTINGS *proxy); 9166 9167 HRESULT (STDMETHODCALLTYPE *SetProxySettings)( 9168 IWMReaderNetworkConfig2 *This, 9169 LPCWSTR protocol, 9170 WMT_PROXY_SETTINGS proxy); 9171 9172 HRESULT (STDMETHODCALLTYPE *GetProxyHostName)( 9173 IWMReaderNetworkConfig2 *This, 9174 const WCHAR *protocol, 9175 WCHAR *hostname, 9176 DWORD *size); 9177 9178 HRESULT (STDMETHODCALLTYPE *SetProxyHostName)( 9179 IWMReaderNetworkConfig2 *This, 9180 const WCHAR *protocol, 9181 const WCHAR *hostname); 9182 9183 HRESULT (STDMETHODCALLTYPE *GetProxyPort)( 9184 IWMReaderNetworkConfig2 *This, 9185 const WCHAR *protocol, 9186 DWORD *port); 9187 9188 HRESULT (STDMETHODCALLTYPE *SetProxyPort)( 9189 IWMReaderNetworkConfig2 *This, 9190 const WCHAR *protocol, 9191 DWORD port); 9192 9193 HRESULT (STDMETHODCALLTYPE *GetProxyExceptionList)( 9194 IWMReaderNetworkConfig2 *This, 9195 const WCHAR *protocol, 9196 WCHAR *exceptions, 9197 DWORD *count); 9198 9199 HRESULT (STDMETHODCALLTYPE *SetProxyExceptionList)( 9200 IWMReaderNetworkConfig2 *This, 9201 const WCHAR *protocol, 9202 const WCHAR *exceptions); 9203 9204 HRESULT (STDMETHODCALLTYPE *GetProxyBypassForLocal)( 9205 IWMReaderNetworkConfig2 *This, 9206 const WCHAR *protocol, 9207 WINBOOL *bypass); 9208 9209 HRESULT (STDMETHODCALLTYPE *SetProxyBypassForLocal)( 9210 IWMReaderNetworkConfig2 *This, 9211 const WCHAR *protocol, 9212 WINBOOL bypass); 9213 9214 HRESULT (STDMETHODCALLTYPE *GetForceRerunAutoProxyDetection)( 9215 IWMReaderNetworkConfig2 *This, 9216 WINBOOL *detection); 9217 9218 HRESULT (STDMETHODCALLTYPE *SetForceRerunAutoProxyDetection)( 9219 IWMReaderNetworkConfig2 *This, 9220 WINBOOL detection); 9221 9222 HRESULT (STDMETHODCALLTYPE *GetEnableMulticast)( 9223 IWMReaderNetworkConfig2 *This, 9224 WINBOOL *multicast); 9225 9226 HRESULT (STDMETHODCALLTYPE *SetEnableMulticast)( 9227 IWMReaderNetworkConfig2 *This, 9228 WINBOOL multicast); 9229 9230 HRESULT (STDMETHODCALLTYPE *GetEnableHTTP)( 9231 IWMReaderNetworkConfig2 *This, 9232 WINBOOL *enable); 9233 9234 HRESULT (STDMETHODCALLTYPE *SetEnableHTTP)( 9235 IWMReaderNetworkConfig2 *This, 9236 WINBOOL enable); 9237 9238 HRESULT (STDMETHODCALLTYPE *GetEnableUDP)( 9239 IWMReaderNetworkConfig2 *This, 9240 WINBOOL *enable); 9241 9242 HRESULT (STDMETHODCALLTYPE *SetEnableUDP)( 9243 IWMReaderNetworkConfig2 *This, 9244 WINBOOL enable); 9245 9246 HRESULT (STDMETHODCALLTYPE *GetEnableTCP)( 9247 IWMReaderNetworkConfig2 *This, 9248 WINBOOL *enable); 9249 9250 HRESULT (STDMETHODCALLTYPE *SetEnableTCP)( 9251 IWMReaderNetworkConfig2 *This, 9252 WINBOOL enable); 9253 9254 HRESULT (STDMETHODCALLTYPE *ResetProtocolRollover)( 9255 IWMReaderNetworkConfig2 *This); 9256 9257 HRESULT (STDMETHODCALLTYPE *GetConnectionBandwidth)( 9258 IWMReaderNetworkConfig2 *This, 9259 DWORD *bandwidth); 9260 9261 HRESULT (STDMETHODCALLTYPE *SetConnectionBandwidth)( 9262 IWMReaderNetworkConfig2 *This, 9263 DWORD bandwidth); 9264 9265 HRESULT (STDMETHODCALLTYPE *GetNumProtocolsSupported)( 9266 IWMReaderNetworkConfig2 *This, 9267 DWORD *protocols); 9268 9269 HRESULT (STDMETHODCALLTYPE *GetSupportedProtocolName)( 9270 IWMReaderNetworkConfig2 *This, 9271 DWORD protocol_num, 9272 WCHAR *protocol, 9273 DWORD *size); 9274 9275 HRESULT (STDMETHODCALLTYPE *AddLoggingUrl)( 9276 IWMReaderNetworkConfig2 *This, 9277 const WCHAR *url); 9278 9279 HRESULT (STDMETHODCALLTYPE *GetLoggingUrl)( 9280 IWMReaderNetworkConfig2 *This, 9281 DWORD index, 9282 WCHAR *url, 9283 DWORD *size); 9284 9285 HRESULT (STDMETHODCALLTYPE *GetLoggingUrlCount)( 9286 IWMReaderNetworkConfig2 *This, 9287 DWORD *count); 9288 9289 HRESULT (STDMETHODCALLTYPE *ResetLoggingUrlList)( 9290 IWMReaderNetworkConfig2 *This); 9291 9292 /*** IWMReaderNetworkConfig2 methods ***/ 9293 HRESULT (STDMETHODCALLTYPE *GetEnableContentCaching)( 9294 IWMReaderNetworkConfig2 *This, 9295 WINBOOL *enable); 9296 9297 HRESULT (STDMETHODCALLTYPE *SetEnableContentCaching)( 9298 IWMReaderNetworkConfig2 *This, 9299 WINBOOL enable); 9300 9301 HRESULT (STDMETHODCALLTYPE *GetEnableFastCache)( 9302 IWMReaderNetworkConfig2 *This, 9303 WINBOOL *enable); 9304 9305 HRESULT (STDMETHODCALLTYPE *SetEnableFastCache)( 9306 IWMReaderNetworkConfig2 *This, 9307 WINBOOL enable); 9308 9309 HRESULT (STDMETHODCALLTYPE *GetAcceleratedStreamingDuration)( 9310 IWMReaderNetworkConfig2 *This, 9311 QWORD *duration); 9312 9313 HRESULT (STDMETHODCALLTYPE *SetAcceleratedStreamingDuration)( 9314 IWMReaderNetworkConfig2 *This, 9315 QWORD duration); 9316 9317 HRESULT (STDMETHODCALLTYPE *GetAutoReconnectLimit)( 9318 IWMReaderNetworkConfig2 *This, 9319 DWORD *limit); 9320 9321 HRESULT (STDMETHODCALLTYPE *SetAutoReconnectLimit)( 9322 IWMReaderNetworkConfig2 *This, 9323 DWORD limit); 9324 9325 HRESULT (STDMETHODCALLTYPE *GetEnableResends)( 9326 IWMReaderNetworkConfig2 *This, 9327 WINBOOL *enable); 9328 9329 HRESULT (STDMETHODCALLTYPE *SetEnableResends)( 9330 IWMReaderNetworkConfig2 *This, 9331 WINBOOL enable); 9332 9333 HRESULT (STDMETHODCALLTYPE *GetEnableThinning)( 9334 IWMReaderNetworkConfig2 *This, 9335 WINBOOL *enable); 9336 9337 HRESULT (STDMETHODCALLTYPE *SetEnableThinning)( 9338 IWMReaderNetworkConfig2 *This, 9339 WINBOOL enable); 9340 9341 HRESULT (STDMETHODCALLTYPE *GetMaxNetPacketSize)( 9342 IWMReaderNetworkConfig2 *This, 9343 DWORD *packet_size); 9344 9345 END_INTERFACE 9346 } IWMReaderNetworkConfig2Vtbl; 9347 9348 interface IWMReaderNetworkConfig2 { 9349 CONST_VTBL IWMReaderNetworkConfig2Vtbl* lpVtbl; 9350 }; 9351 9352 #ifdef COBJMACROS 9353 #ifndef WIDL_C_INLINE_WRAPPERS 9354 /*** IUnknown methods ***/ 9355 #define IWMReaderNetworkConfig2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 9356 #define IWMReaderNetworkConfig2_AddRef(This) (This)->lpVtbl->AddRef(This) 9357 #define IWMReaderNetworkConfig2_Release(This) (This)->lpVtbl->Release(This) 9358 /*** IWMReaderNetworkConfig methods ***/ 9359 #define IWMReaderNetworkConfig2_GetBufferingTime(This,buffering_time) (This)->lpVtbl->GetBufferingTime(This,buffering_time) 9360 #define IWMReaderNetworkConfig2_SetBufferingTime(This,buffering_time) (This)->lpVtbl->SetBufferingTime(This,buffering_time) 9361 #define IWMReaderNetworkConfig2_GetUDPPortRanges(This,array,ranges) (This)->lpVtbl->GetUDPPortRanges(This,array,ranges) 9362 #define IWMReaderNetworkConfig2_SetUDPPortRanges(This,array,ranges) (This)->lpVtbl->SetUDPPortRanges(This,array,ranges) 9363 #define IWMReaderNetworkConfig2_GetProxySettings(This,protocol,proxy) (This)->lpVtbl->GetProxySettings(This,protocol,proxy) 9364 #define IWMReaderNetworkConfig2_SetProxySettings(This,protocol,proxy) (This)->lpVtbl->SetProxySettings(This,protocol,proxy) 9365 #define IWMReaderNetworkConfig2_GetProxyHostName(This,protocol,hostname,size) (This)->lpVtbl->GetProxyHostName(This,protocol,hostname,size) 9366 #define IWMReaderNetworkConfig2_SetProxyHostName(This,protocol,hostname) (This)->lpVtbl->SetProxyHostName(This,protocol,hostname) 9367 #define IWMReaderNetworkConfig2_GetProxyPort(This,protocol,port) (This)->lpVtbl->GetProxyPort(This,protocol,port) 9368 #define IWMReaderNetworkConfig2_SetProxyPort(This,protocol,port) (This)->lpVtbl->SetProxyPort(This,protocol,port) 9369 #define IWMReaderNetworkConfig2_GetProxyExceptionList(This,protocol,exceptions,count) (This)->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count) 9370 #define IWMReaderNetworkConfig2_SetProxyExceptionList(This,protocol,exceptions) (This)->lpVtbl->SetProxyExceptionList(This,protocol,exceptions) 9371 #define IWMReaderNetworkConfig2_GetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass) 9372 #define IWMReaderNetworkConfig2_SetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass) 9373 #define IWMReaderNetworkConfig2_GetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->GetForceRerunAutoProxyDetection(This,detection) 9374 #define IWMReaderNetworkConfig2_SetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->SetForceRerunAutoProxyDetection(This,detection) 9375 #define IWMReaderNetworkConfig2_GetEnableMulticast(This,multicast) (This)->lpVtbl->GetEnableMulticast(This,multicast) 9376 #define IWMReaderNetworkConfig2_SetEnableMulticast(This,multicast) (This)->lpVtbl->SetEnableMulticast(This,multicast) 9377 #define IWMReaderNetworkConfig2_GetEnableHTTP(This,enable) (This)->lpVtbl->GetEnableHTTP(This,enable) 9378 #define IWMReaderNetworkConfig2_SetEnableHTTP(This,enable) (This)->lpVtbl->SetEnableHTTP(This,enable) 9379 #define IWMReaderNetworkConfig2_GetEnableUDP(This,enable) (This)->lpVtbl->GetEnableUDP(This,enable) 9380 #define IWMReaderNetworkConfig2_SetEnableUDP(This,enable) (This)->lpVtbl->SetEnableUDP(This,enable) 9381 #define IWMReaderNetworkConfig2_GetEnableTCP(This,enable) (This)->lpVtbl->GetEnableTCP(This,enable) 9382 #define IWMReaderNetworkConfig2_SetEnableTCP(This,enable) (This)->lpVtbl->SetEnableTCP(This,enable) 9383 #define IWMReaderNetworkConfig2_ResetProtocolRollover(This) (This)->lpVtbl->ResetProtocolRollover(This) 9384 #define IWMReaderNetworkConfig2_GetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->GetConnectionBandwidth(This,bandwidth) 9385 #define IWMReaderNetworkConfig2_SetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->SetConnectionBandwidth(This,bandwidth) 9386 #define IWMReaderNetworkConfig2_GetNumProtocolsSupported(This,protocols) (This)->lpVtbl->GetNumProtocolsSupported(This,protocols) 9387 #define IWMReaderNetworkConfig2_GetSupportedProtocolName(This,protocol_num,protocol,size) (This)->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size) 9388 #define IWMReaderNetworkConfig2_AddLoggingUrl(This,url) (This)->lpVtbl->AddLoggingUrl(This,url) 9389 #define IWMReaderNetworkConfig2_GetLoggingUrl(This,index,url,size) (This)->lpVtbl->GetLoggingUrl(This,index,url,size) 9390 #define IWMReaderNetworkConfig2_GetLoggingUrlCount(This,count) (This)->lpVtbl->GetLoggingUrlCount(This,count) 9391 #define IWMReaderNetworkConfig2_ResetLoggingUrlList(This) (This)->lpVtbl->ResetLoggingUrlList(This) 9392 /*** IWMReaderNetworkConfig2 methods ***/ 9393 #define IWMReaderNetworkConfig2_GetEnableContentCaching(This,enable) (This)->lpVtbl->GetEnableContentCaching(This,enable) 9394 #define IWMReaderNetworkConfig2_SetEnableContentCaching(This,enable) (This)->lpVtbl->SetEnableContentCaching(This,enable) 9395 #define IWMReaderNetworkConfig2_GetEnableFastCache(This,enable) (This)->lpVtbl->GetEnableFastCache(This,enable) 9396 #define IWMReaderNetworkConfig2_SetEnableFastCache(This,enable) (This)->lpVtbl->SetEnableFastCache(This,enable) 9397 #define IWMReaderNetworkConfig2_GetAcceleratedStreamingDuration(This,duration) (This)->lpVtbl->GetAcceleratedStreamingDuration(This,duration) 9398 #define IWMReaderNetworkConfig2_SetAcceleratedStreamingDuration(This,duration) (This)->lpVtbl->SetAcceleratedStreamingDuration(This,duration) 9399 #define IWMReaderNetworkConfig2_GetAutoReconnectLimit(This,limit) (This)->lpVtbl->GetAutoReconnectLimit(This,limit) 9400 #define IWMReaderNetworkConfig2_SetAutoReconnectLimit(This,limit) (This)->lpVtbl->SetAutoReconnectLimit(This,limit) 9401 #define IWMReaderNetworkConfig2_GetEnableResends(This,enable) (This)->lpVtbl->GetEnableResends(This,enable) 9402 #define IWMReaderNetworkConfig2_SetEnableResends(This,enable) (This)->lpVtbl->SetEnableResends(This,enable) 9403 #define IWMReaderNetworkConfig2_GetEnableThinning(This,enable) (This)->lpVtbl->GetEnableThinning(This,enable) 9404 #define IWMReaderNetworkConfig2_SetEnableThinning(This,enable) (This)->lpVtbl->SetEnableThinning(This,enable) 9405 #define IWMReaderNetworkConfig2_GetMaxNetPacketSize(This,packet_size) (This)->lpVtbl->GetMaxNetPacketSize(This,packet_size) 9406 #else 9407 /*** IUnknown methods ***/ 9408 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_QueryInterface(IWMReaderNetworkConfig2* This,REFIID riid,void **ppvObject) { 9409 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 9410 } 9411 static FORCEINLINE ULONG IWMReaderNetworkConfig2_AddRef(IWMReaderNetworkConfig2* This) { 9412 return This->lpVtbl->AddRef(This); 9413 } 9414 static FORCEINLINE ULONG IWMReaderNetworkConfig2_Release(IWMReaderNetworkConfig2* This) { 9415 return This->lpVtbl->Release(This); 9416 } 9417 /*** IWMReaderNetworkConfig methods ***/ 9418 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetBufferingTime(IWMReaderNetworkConfig2* This,QWORD *buffering_time) { 9419 return This->lpVtbl->GetBufferingTime(This,buffering_time); 9420 } 9421 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetBufferingTime(IWMReaderNetworkConfig2* This,QWORD buffering_time) { 9422 return This->lpVtbl->SetBufferingTime(This,buffering_time); 9423 } 9424 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetUDPPortRanges(IWMReaderNetworkConfig2* This,WM_PORT_NUMBER_RANGE *array,DWORD *ranges) { 9425 return This->lpVtbl->GetUDPPortRanges(This,array,ranges); 9426 } 9427 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetUDPPortRanges(IWMReaderNetworkConfig2* This,WM_PORT_NUMBER_RANGE *array,DWORD ranges) { 9428 return This->lpVtbl->SetUDPPortRanges(This,array,ranges); 9429 } 9430 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetProxySettings(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WMT_PROXY_SETTINGS *proxy) { 9431 return This->lpVtbl->GetProxySettings(This,protocol,proxy); 9432 } 9433 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetProxySettings(IWMReaderNetworkConfig2* This,LPCWSTR protocol,WMT_PROXY_SETTINGS proxy) { 9434 return This->lpVtbl->SetProxySettings(This,protocol,proxy); 9435 } 9436 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetProxyHostName(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WCHAR *hostname,DWORD *size) { 9437 return This->lpVtbl->GetProxyHostName(This,protocol,hostname,size); 9438 } 9439 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetProxyHostName(IWMReaderNetworkConfig2* This,const WCHAR *protocol,const WCHAR *hostname) { 9440 return This->lpVtbl->SetProxyHostName(This,protocol,hostname); 9441 } 9442 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetProxyPort(IWMReaderNetworkConfig2* This,const WCHAR *protocol,DWORD *port) { 9443 return This->lpVtbl->GetProxyPort(This,protocol,port); 9444 } 9445 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetProxyPort(IWMReaderNetworkConfig2* This,const WCHAR *protocol,DWORD port) { 9446 return This->lpVtbl->SetProxyPort(This,protocol,port); 9447 } 9448 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetProxyExceptionList(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WCHAR *exceptions,DWORD *count) { 9449 return This->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count); 9450 } 9451 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetProxyExceptionList(IWMReaderNetworkConfig2* This,const WCHAR *protocol,const WCHAR *exceptions) { 9452 return This->lpVtbl->SetProxyExceptionList(This,protocol,exceptions); 9453 } 9454 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetProxyBypassForLocal(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WINBOOL *bypass) { 9455 return This->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass); 9456 } 9457 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetProxyBypassForLocal(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WINBOOL bypass) { 9458 return This->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass); 9459 } 9460 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetForceRerunAutoProxyDetection(IWMReaderNetworkConfig2* This,WINBOOL *detection) { 9461 return This->lpVtbl->GetForceRerunAutoProxyDetection(This,detection); 9462 } 9463 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetForceRerunAutoProxyDetection(IWMReaderNetworkConfig2* This,WINBOOL detection) { 9464 return This->lpVtbl->SetForceRerunAutoProxyDetection(This,detection); 9465 } 9466 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableMulticast(IWMReaderNetworkConfig2* This,WINBOOL *multicast) { 9467 return This->lpVtbl->GetEnableMulticast(This,multicast); 9468 } 9469 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableMulticast(IWMReaderNetworkConfig2* This,WINBOOL multicast) { 9470 return This->lpVtbl->SetEnableMulticast(This,multicast); 9471 } 9472 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableHTTP(IWMReaderNetworkConfig2* This,WINBOOL *enable) { 9473 return This->lpVtbl->GetEnableHTTP(This,enable); 9474 } 9475 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableHTTP(IWMReaderNetworkConfig2* This,WINBOOL enable) { 9476 return This->lpVtbl->SetEnableHTTP(This,enable); 9477 } 9478 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableUDP(IWMReaderNetworkConfig2* This,WINBOOL *enable) { 9479 return This->lpVtbl->GetEnableUDP(This,enable); 9480 } 9481 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableUDP(IWMReaderNetworkConfig2* This,WINBOOL enable) { 9482 return This->lpVtbl->SetEnableUDP(This,enable); 9483 } 9484 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableTCP(IWMReaderNetworkConfig2* This,WINBOOL *enable) { 9485 return This->lpVtbl->GetEnableTCP(This,enable); 9486 } 9487 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableTCP(IWMReaderNetworkConfig2* This,WINBOOL enable) { 9488 return This->lpVtbl->SetEnableTCP(This,enable); 9489 } 9490 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_ResetProtocolRollover(IWMReaderNetworkConfig2* This) { 9491 return This->lpVtbl->ResetProtocolRollover(This); 9492 } 9493 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetConnectionBandwidth(IWMReaderNetworkConfig2* This,DWORD *bandwidth) { 9494 return This->lpVtbl->GetConnectionBandwidth(This,bandwidth); 9495 } 9496 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetConnectionBandwidth(IWMReaderNetworkConfig2* This,DWORD bandwidth) { 9497 return This->lpVtbl->SetConnectionBandwidth(This,bandwidth); 9498 } 9499 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetNumProtocolsSupported(IWMReaderNetworkConfig2* This,DWORD *protocols) { 9500 return This->lpVtbl->GetNumProtocolsSupported(This,protocols); 9501 } 9502 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetSupportedProtocolName(IWMReaderNetworkConfig2* This,DWORD protocol_num,WCHAR *protocol,DWORD *size) { 9503 return This->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size); 9504 } 9505 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_AddLoggingUrl(IWMReaderNetworkConfig2* This,const WCHAR *url) { 9506 return This->lpVtbl->AddLoggingUrl(This,url); 9507 } 9508 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetLoggingUrl(IWMReaderNetworkConfig2* This,DWORD index,WCHAR *url,DWORD *size) { 9509 return This->lpVtbl->GetLoggingUrl(This,index,url,size); 9510 } 9511 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetLoggingUrlCount(IWMReaderNetworkConfig2* This,DWORD *count) { 9512 return This->lpVtbl->GetLoggingUrlCount(This,count); 9513 } 9514 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_ResetLoggingUrlList(IWMReaderNetworkConfig2* This) { 9515 return This->lpVtbl->ResetLoggingUrlList(This); 9516 } 9517 /*** IWMReaderNetworkConfig2 methods ***/ 9518 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableContentCaching(IWMReaderNetworkConfig2* This,WINBOOL *enable) { 9519 return This->lpVtbl->GetEnableContentCaching(This,enable); 9520 } 9521 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableContentCaching(IWMReaderNetworkConfig2* This,WINBOOL enable) { 9522 return This->lpVtbl->SetEnableContentCaching(This,enable); 9523 } 9524 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableFastCache(IWMReaderNetworkConfig2* This,WINBOOL *enable) { 9525 return This->lpVtbl->GetEnableFastCache(This,enable); 9526 } 9527 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableFastCache(IWMReaderNetworkConfig2* This,WINBOOL enable) { 9528 return This->lpVtbl->SetEnableFastCache(This,enable); 9529 } 9530 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetAcceleratedStreamingDuration(IWMReaderNetworkConfig2* This,QWORD *duration) { 9531 return This->lpVtbl->GetAcceleratedStreamingDuration(This,duration); 9532 } 9533 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetAcceleratedStreamingDuration(IWMReaderNetworkConfig2* This,QWORD duration) { 9534 return This->lpVtbl->SetAcceleratedStreamingDuration(This,duration); 9535 } 9536 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetAutoReconnectLimit(IWMReaderNetworkConfig2* This,DWORD *limit) { 9537 return This->lpVtbl->GetAutoReconnectLimit(This,limit); 9538 } 9539 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetAutoReconnectLimit(IWMReaderNetworkConfig2* This,DWORD limit) { 9540 return This->lpVtbl->SetAutoReconnectLimit(This,limit); 9541 } 9542 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableResends(IWMReaderNetworkConfig2* This,WINBOOL *enable) { 9543 return This->lpVtbl->GetEnableResends(This,enable); 9544 } 9545 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableResends(IWMReaderNetworkConfig2* This,WINBOOL enable) { 9546 return This->lpVtbl->SetEnableResends(This,enable); 9547 } 9548 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableThinning(IWMReaderNetworkConfig2* This,WINBOOL *enable) { 9549 return This->lpVtbl->GetEnableThinning(This,enable); 9550 } 9551 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableThinning(IWMReaderNetworkConfig2* This,WINBOOL enable) { 9552 return This->lpVtbl->SetEnableThinning(This,enable); 9553 } 9554 static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetMaxNetPacketSize(IWMReaderNetworkConfig2* This,DWORD *packet_size) { 9555 return This->lpVtbl->GetMaxNetPacketSize(This,packet_size); 9556 } 9557 #endif 9558 #endif 9559 9560 #endif 9561 9562 9563 #endif /* __IWMReaderNetworkConfig2_INTERFACE_DEFINED__ */ 9564 9565 /***************************************************************************** 9566 * IWMReaderStreamClock interface 9567 */ 9568 #ifndef __IWMReaderStreamClock_INTERFACE_DEFINED__ 9569 #define __IWMReaderStreamClock_INTERFACE_DEFINED__ 9570 9571 DEFINE_GUID(IID_IWMReaderStreamClock, 0x96406bed, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); 9572 #if defined(__cplusplus) && !defined(CINTERFACE) 9573 MIDL_INTERFACE("96406bed-2b2b-11d3-b36b-00c04f6108ff") 9574 IWMReaderStreamClock : public IUnknown 9575 { 9576 virtual HRESULT STDMETHODCALLTYPE GetTime( 9577 QWORD *now) = 0; 9578 9579 virtual HRESULT STDMETHODCALLTYPE SetTimer( 9580 QWORD when, 9581 void *param, 9582 DWORD *id) = 0; 9583 9584 virtual HRESULT STDMETHODCALLTYPE KillTimer( 9585 DWORD id) = 0; 9586 9587 }; 9588 #ifdef __CRT_UUID_DECL 9589 __CRT_UUID_DECL(IWMReaderStreamClock, 0x96406bed, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) 9590 #endif 9591 #else 9592 typedef struct IWMReaderStreamClockVtbl { 9593 BEGIN_INTERFACE 9594 9595 /*** IUnknown methods ***/ 9596 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 9597 IWMReaderStreamClock *This, 9598 REFIID riid, 9599 void **ppvObject); 9600 9601 ULONG (STDMETHODCALLTYPE *AddRef)( 9602 IWMReaderStreamClock *This); 9603 9604 ULONG (STDMETHODCALLTYPE *Release)( 9605 IWMReaderStreamClock *This); 9606 9607 /*** IWMReaderStreamClock methods ***/ 9608 HRESULT (STDMETHODCALLTYPE *GetTime)( 9609 IWMReaderStreamClock *This, 9610 QWORD *now); 9611 9612 HRESULT (STDMETHODCALLTYPE *SetTimer)( 9613 IWMReaderStreamClock *This, 9614 QWORD when, 9615 void *param, 9616 DWORD *id); 9617 9618 HRESULT (STDMETHODCALLTYPE *KillTimer)( 9619 IWMReaderStreamClock *This, 9620 DWORD id); 9621 9622 END_INTERFACE 9623 } IWMReaderStreamClockVtbl; 9624 9625 interface IWMReaderStreamClock { 9626 CONST_VTBL IWMReaderStreamClockVtbl* lpVtbl; 9627 }; 9628 9629 #ifdef COBJMACROS 9630 #ifndef WIDL_C_INLINE_WRAPPERS 9631 /*** IUnknown methods ***/ 9632 #define IWMReaderStreamClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 9633 #define IWMReaderStreamClock_AddRef(This) (This)->lpVtbl->AddRef(This) 9634 #define IWMReaderStreamClock_Release(This) (This)->lpVtbl->Release(This) 9635 /*** IWMReaderStreamClock methods ***/ 9636 #define IWMReaderStreamClock_GetTime(This,now) (This)->lpVtbl->GetTime(This,now) 9637 #define IWMReaderStreamClock_SetTimer(This,when,param,id) (This)->lpVtbl->SetTimer(This,when,param,id) 9638 #define IWMReaderStreamClock_KillTimer(This,id) (This)->lpVtbl->KillTimer(This,id) 9639 #else 9640 /*** IUnknown methods ***/ 9641 static FORCEINLINE HRESULT IWMReaderStreamClock_QueryInterface(IWMReaderStreamClock* This,REFIID riid,void **ppvObject) { 9642 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 9643 } 9644 static FORCEINLINE ULONG IWMReaderStreamClock_AddRef(IWMReaderStreamClock* This) { 9645 return This->lpVtbl->AddRef(This); 9646 } 9647 static FORCEINLINE ULONG IWMReaderStreamClock_Release(IWMReaderStreamClock* This) { 9648 return This->lpVtbl->Release(This); 9649 } 9650 /*** IWMReaderStreamClock methods ***/ 9651 static FORCEINLINE HRESULT IWMReaderStreamClock_GetTime(IWMReaderStreamClock* This,QWORD *now) { 9652 return This->lpVtbl->GetTime(This,now); 9653 } 9654 static FORCEINLINE HRESULT IWMReaderStreamClock_SetTimer(IWMReaderStreamClock* This,QWORD when,void *param,DWORD *id) { 9655 return This->lpVtbl->SetTimer(This,when,param,id); 9656 } 9657 static FORCEINLINE HRESULT IWMReaderStreamClock_KillTimer(IWMReaderStreamClock* This,DWORD id) { 9658 return This->lpVtbl->KillTimer(This,id); 9659 } 9660 #endif 9661 #endif 9662 9663 #endif 9664 9665 9666 #endif /* __IWMReaderStreamClock_INTERFACE_DEFINED__ */ 9667 9668 /***************************************************************************** 9669 * IWMPacketSize interface 9670 */ 9671 #ifndef __IWMPacketSize_INTERFACE_DEFINED__ 9672 #define __IWMPacketSize_INTERFACE_DEFINED__ 9673 9674 DEFINE_GUID(IID_IWMPacketSize, 0xcdfb97ab, 0x188f, 0x40b3, 0xb6,0x43, 0x5b,0x79,0x03,0x97,0x5c,0x59); 9675 #if defined(__cplusplus) && !defined(CINTERFACE) 9676 MIDL_INTERFACE("cdfb97ab-188f-40b3-b643-5b7903975c59") 9677 IWMPacketSize : public IUnknown 9678 { 9679 virtual HRESULT STDMETHODCALLTYPE GetMaxPacketSize( 9680 DWORD *size) = 0; 9681 9682 virtual HRESULT STDMETHODCALLTYPE SetMaxPacketSize( 9683 DWORD size) = 0; 9684 9685 }; 9686 #ifdef __CRT_UUID_DECL 9687 __CRT_UUID_DECL(IWMPacketSize, 0xcdfb97ab, 0x188f, 0x40b3, 0xb6,0x43, 0x5b,0x79,0x03,0x97,0x5c,0x59) 9688 #endif 9689 #else 9690 typedef struct IWMPacketSizeVtbl { 9691 BEGIN_INTERFACE 9692 9693 /*** IUnknown methods ***/ 9694 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 9695 IWMPacketSize *This, 9696 REFIID riid, 9697 void **ppvObject); 9698 9699 ULONG (STDMETHODCALLTYPE *AddRef)( 9700 IWMPacketSize *This); 9701 9702 ULONG (STDMETHODCALLTYPE *Release)( 9703 IWMPacketSize *This); 9704 9705 /*** IWMPacketSize methods ***/ 9706 HRESULT (STDMETHODCALLTYPE *GetMaxPacketSize)( 9707 IWMPacketSize *This, 9708 DWORD *size); 9709 9710 HRESULT (STDMETHODCALLTYPE *SetMaxPacketSize)( 9711 IWMPacketSize *This, 9712 DWORD size); 9713 9714 END_INTERFACE 9715 } IWMPacketSizeVtbl; 9716 9717 interface IWMPacketSize { 9718 CONST_VTBL IWMPacketSizeVtbl* lpVtbl; 9719 }; 9720 9721 #ifdef COBJMACROS 9722 #ifndef WIDL_C_INLINE_WRAPPERS 9723 /*** IUnknown methods ***/ 9724 #define IWMPacketSize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 9725 #define IWMPacketSize_AddRef(This) (This)->lpVtbl->AddRef(This) 9726 #define IWMPacketSize_Release(This) (This)->lpVtbl->Release(This) 9727 /*** IWMPacketSize methods ***/ 9728 #define IWMPacketSize_GetMaxPacketSize(This,size) (This)->lpVtbl->GetMaxPacketSize(This,size) 9729 #define IWMPacketSize_SetMaxPacketSize(This,size) (This)->lpVtbl->SetMaxPacketSize(This,size) 9730 #else 9731 /*** IUnknown methods ***/ 9732 static FORCEINLINE HRESULT IWMPacketSize_QueryInterface(IWMPacketSize* This,REFIID riid,void **ppvObject) { 9733 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 9734 } 9735 static FORCEINLINE ULONG IWMPacketSize_AddRef(IWMPacketSize* This) { 9736 return This->lpVtbl->AddRef(This); 9737 } 9738 static FORCEINLINE ULONG IWMPacketSize_Release(IWMPacketSize* This) { 9739 return This->lpVtbl->Release(This); 9740 } 9741 /*** IWMPacketSize methods ***/ 9742 static FORCEINLINE HRESULT IWMPacketSize_GetMaxPacketSize(IWMPacketSize* This,DWORD *size) { 9743 return This->lpVtbl->GetMaxPacketSize(This,size); 9744 } 9745 static FORCEINLINE HRESULT IWMPacketSize_SetMaxPacketSize(IWMPacketSize* This,DWORD size) { 9746 return This->lpVtbl->SetMaxPacketSize(This,size); 9747 } 9748 #endif 9749 #endif 9750 9751 #endif 9752 9753 9754 #endif /* __IWMPacketSize_INTERFACE_DEFINED__ */ 9755 9756 /***************************************************************************** 9757 * IWMPacketSize2 interface 9758 */ 9759 #ifndef __IWMPacketSize2_INTERFACE_DEFINED__ 9760 #define __IWMPacketSize2_INTERFACE_DEFINED__ 9761 9762 DEFINE_GUID(IID_IWMPacketSize2, 0x8bfc2b9e, 0xb646, 0x4233, 0xa8,0x77, 0x1c,0x6a,0x07,0x96,0x69,0xdc); 9763 #if defined(__cplusplus) && !defined(CINTERFACE) 9764 MIDL_INTERFACE("8bfc2b9e-b646-4233-a877-1c6a079669dc") 9765 IWMPacketSize2 : public IWMPacketSize 9766 { 9767 virtual HRESULT STDMETHODCALLTYPE GetMinPacketSize( 9768 DWORD *size) = 0; 9769 9770 virtual HRESULT STDMETHODCALLTYPE SetMinPacketSize( 9771 DWORD size) = 0; 9772 9773 }; 9774 #ifdef __CRT_UUID_DECL 9775 __CRT_UUID_DECL(IWMPacketSize2, 0x8bfc2b9e, 0xb646, 0x4233, 0xa8,0x77, 0x1c,0x6a,0x07,0x96,0x69,0xdc) 9776 #endif 9777 #else 9778 typedef struct IWMPacketSize2Vtbl { 9779 BEGIN_INTERFACE 9780 9781 /*** IUnknown methods ***/ 9782 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 9783 IWMPacketSize2 *This, 9784 REFIID riid, 9785 void **ppvObject); 9786 9787 ULONG (STDMETHODCALLTYPE *AddRef)( 9788 IWMPacketSize2 *This); 9789 9790 ULONG (STDMETHODCALLTYPE *Release)( 9791 IWMPacketSize2 *This); 9792 9793 /*** IWMPacketSize methods ***/ 9794 HRESULT (STDMETHODCALLTYPE *GetMaxPacketSize)( 9795 IWMPacketSize2 *This, 9796 DWORD *size); 9797 9798 HRESULT (STDMETHODCALLTYPE *SetMaxPacketSize)( 9799 IWMPacketSize2 *This, 9800 DWORD size); 9801 9802 /*** IWMPacketSize2 methods ***/ 9803 HRESULT (STDMETHODCALLTYPE *GetMinPacketSize)( 9804 IWMPacketSize2 *This, 9805 DWORD *size); 9806 9807 HRESULT (STDMETHODCALLTYPE *SetMinPacketSize)( 9808 IWMPacketSize2 *This, 9809 DWORD size); 9810 9811 END_INTERFACE 9812 } IWMPacketSize2Vtbl; 9813 9814 interface IWMPacketSize2 { 9815 CONST_VTBL IWMPacketSize2Vtbl* lpVtbl; 9816 }; 9817 9818 #ifdef COBJMACROS 9819 #ifndef WIDL_C_INLINE_WRAPPERS 9820 /*** IUnknown methods ***/ 9821 #define IWMPacketSize2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 9822 #define IWMPacketSize2_AddRef(This) (This)->lpVtbl->AddRef(This) 9823 #define IWMPacketSize2_Release(This) (This)->lpVtbl->Release(This) 9824 /*** IWMPacketSize methods ***/ 9825 #define IWMPacketSize2_GetMaxPacketSize(This,size) (This)->lpVtbl->GetMaxPacketSize(This,size) 9826 #define IWMPacketSize2_SetMaxPacketSize(This,size) (This)->lpVtbl->SetMaxPacketSize(This,size) 9827 /*** IWMPacketSize2 methods ***/ 9828 #define IWMPacketSize2_GetMinPacketSize(This,size) (This)->lpVtbl->GetMinPacketSize(This,size) 9829 #define IWMPacketSize2_SetMinPacketSize(This,size) (This)->lpVtbl->SetMinPacketSize(This,size) 9830 #else 9831 /*** IUnknown methods ***/ 9832 static FORCEINLINE HRESULT IWMPacketSize2_QueryInterface(IWMPacketSize2* This,REFIID riid,void **ppvObject) { 9833 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 9834 } 9835 static FORCEINLINE ULONG IWMPacketSize2_AddRef(IWMPacketSize2* This) { 9836 return This->lpVtbl->AddRef(This); 9837 } 9838 static FORCEINLINE ULONG IWMPacketSize2_Release(IWMPacketSize2* This) { 9839 return This->lpVtbl->Release(This); 9840 } 9841 /*** IWMPacketSize methods ***/ 9842 static FORCEINLINE HRESULT IWMPacketSize2_GetMaxPacketSize(IWMPacketSize2* This,DWORD *size) { 9843 return This->lpVtbl->GetMaxPacketSize(This,size); 9844 } 9845 static FORCEINLINE HRESULT IWMPacketSize2_SetMaxPacketSize(IWMPacketSize2* This,DWORD size) { 9846 return This->lpVtbl->SetMaxPacketSize(This,size); 9847 } 9848 /*** IWMPacketSize2 methods ***/ 9849 static FORCEINLINE HRESULT IWMPacketSize2_GetMinPacketSize(IWMPacketSize2* This,DWORD *size) { 9850 return This->lpVtbl->GetMinPacketSize(This,size); 9851 } 9852 static FORCEINLINE HRESULT IWMPacketSize2_SetMinPacketSize(IWMPacketSize2* This,DWORD size) { 9853 return This->lpVtbl->SetMinPacketSize(This,size); 9854 } 9855 #endif 9856 #endif 9857 9858 #endif 9859 9860 9861 #endif /* __IWMPacketSize2_INTERFACE_DEFINED__ */ 9862 9863 /***************************************************************************** 9864 * IWMDRMReader interface 9865 */ 9866 #ifndef __IWMDRMReader_INTERFACE_DEFINED__ 9867 #define __IWMDRMReader_INTERFACE_DEFINED__ 9868 9869 DEFINE_GUID(IID_IWMDRMReader, 0xd2827540, 0x3ee7, 0x432c, 0xb1,0x4c, 0xdc,0x17,0xf0,0x85,0xd3,0xb3); 9870 #if defined(__cplusplus) && !defined(CINTERFACE) 9871 MIDL_INTERFACE("d2827540-3ee7-432c-b14c-dc17f085d3b3") 9872 IWMDRMReader : public IUnknown 9873 { 9874 virtual HRESULT STDMETHODCALLTYPE AcquireLicense( 9875 DWORD flags) = 0; 9876 9877 virtual HRESULT STDMETHODCALLTYPE CancelLicenseAcquisition( 9878 ) = 0; 9879 9880 virtual HRESULT STDMETHODCALLTYPE Individualize( 9881 DWORD flags) = 0; 9882 9883 virtual HRESULT STDMETHODCALLTYPE CancelIndividualization( 9884 ) = 0; 9885 9886 virtual HRESULT STDMETHODCALLTYPE MonitorLicenseAcquisition( 9887 ) = 0; 9888 9889 virtual HRESULT STDMETHODCALLTYPE CancelMonitorLicenseAcquisition( 9890 ) = 0; 9891 9892 virtual HRESULT STDMETHODCALLTYPE SetDRMProperty( 9893 const WCHAR *name, 9894 WMT_ATTR_DATATYPE type, 9895 const BYTE *value, 9896 WORD length) = 0; 9897 9898 virtual HRESULT STDMETHODCALLTYPE GetDRMProperty( 9899 const WCHAR *name, 9900 WMT_ATTR_DATATYPE *type, 9901 BYTE *value, 9902 WORD *length) = 0; 9903 9904 }; 9905 #ifdef __CRT_UUID_DECL 9906 __CRT_UUID_DECL(IWMDRMReader, 0xd2827540, 0x3ee7, 0x432c, 0xb1,0x4c, 0xdc,0x17,0xf0,0x85,0xd3,0xb3) 9907 #endif 9908 #else 9909 typedef struct IWMDRMReaderVtbl { 9910 BEGIN_INTERFACE 9911 9912 /*** IUnknown methods ***/ 9913 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 9914 IWMDRMReader *This, 9915 REFIID riid, 9916 void **ppvObject); 9917 9918 ULONG (STDMETHODCALLTYPE *AddRef)( 9919 IWMDRMReader *This); 9920 9921 ULONG (STDMETHODCALLTYPE *Release)( 9922 IWMDRMReader *This); 9923 9924 /*** IWMDRMReader methods ***/ 9925 HRESULT (STDMETHODCALLTYPE *AcquireLicense)( 9926 IWMDRMReader *This, 9927 DWORD flags); 9928 9929 HRESULT (STDMETHODCALLTYPE *CancelLicenseAcquisition)( 9930 IWMDRMReader *This); 9931 9932 HRESULT (STDMETHODCALLTYPE *Individualize)( 9933 IWMDRMReader *This, 9934 DWORD flags); 9935 9936 HRESULT (STDMETHODCALLTYPE *CancelIndividualization)( 9937 IWMDRMReader *This); 9938 9939 HRESULT (STDMETHODCALLTYPE *MonitorLicenseAcquisition)( 9940 IWMDRMReader *This); 9941 9942 HRESULT (STDMETHODCALLTYPE *CancelMonitorLicenseAcquisition)( 9943 IWMDRMReader *This); 9944 9945 HRESULT (STDMETHODCALLTYPE *SetDRMProperty)( 9946 IWMDRMReader *This, 9947 const WCHAR *name, 9948 WMT_ATTR_DATATYPE type, 9949 const BYTE *value, 9950 WORD length); 9951 9952 HRESULT (STDMETHODCALLTYPE *GetDRMProperty)( 9953 IWMDRMReader *This, 9954 const WCHAR *name, 9955 WMT_ATTR_DATATYPE *type, 9956 BYTE *value, 9957 WORD *length); 9958 9959 END_INTERFACE 9960 } IWMDRMReaderVtbl; 9961 9962 interface IWMDRMReader { 9963 CONST_VTBL IWMDRMReaderVtbl* lpVtbl; 9964 }; 9965 9966 #ifdef COBJMACROS 9967 #ifndef WIDL_C_INLINE_WRAPPERS 9968 /*** IUnknown methods ***/ 9969 #define IWMDRMReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 9970 #define IWMDRMReader_AddRef(This) (This)->lpVtbl->AddRef(This) 9971 #define IWMDRMReader_Release(This) (This)->lpVtbl->Release(This) 9972 /*** IWMDRMReader methods ***/ 9973 #define IWMDRMReader_AcquireLicense(This,flags) (This)->lpVtbl->AcquireLicense(This,flags) 9974 #define IWMDRMReader_CancelLicenseAcquisition(This) (This)->lpVtbl->CancelLicenseAcquisition(This) 9975 #define IWMDRMReader_Individualize(This,flags) (This)->lpVtbl->Individualize(This,flags) 9976 #define IWMDRMReader_CancelIndividualization(This) (This)->lpVtbl->CancelIndividualization(This) 9977 #define IWMDRMReader_MonitorLicenseAcquisition(This) (This)->lpVtbl->MonitorLicenseAcquisition(This) 9978 #define IWMDRMReader_CancelMonitorLicenseAcquisition(This) (This)->lpVtbl->CancelMonitorLicenseAcquisition(This) 9979 #define IWMDRMReader_SetDRMProperty(This,name,type,value,length) (This)->lpVtbl->SetDRMProperty(This,name,type,value,length) 9980 #define IWMDRMReader_GetDRMProperty(This,name,type,value,length) (This)->lpVtbl->GetDRMProperty(This,name,type,value,length) 9981 #else 9982 /*** IUnknown methods ***/ 9983 static FORCEINLINE HRESULT IWMDRMReader_QueryInterface(IWMDRMReader* This,REFIID riid,void **ppvObject) { 9984 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 9985 } 9986 static FORCEINLINE ULONG IWMDRMReader_AddRef(IWMDRMReader* This) { 9987 return This->lpVtbl->AddRef(This); 9988 } 9989 static FORCEINLINE ULONG IWMDRMReader_Release(IWMDRMReader* This) { 9990 return This->lpVtbl->Release(This); 9991 } 9992 /*** IWMDRMReader methods ***/ 9993 static FORCEINLINE HRESULT IWMDRMReader_AcquireLicense(IWMDRMReader* This,DWORD flags) { 9994 return This->lpVtbl->AcquireLicense(This,flags); 9995 } 9996 static FORCEINLINE HRESULT IWMDRMReader_CancelLicenseAcquisition(IWMDRMReader* This) { 9997 return This->lpVtbl->CancelLicenseAcquisition(This); 9998 } 9999 static FORCEINLINE HRESULT IWMDRMReader_Individualize(IWMDRMReader* This,DWORD flags) { 10000 return This->lpVtbl->Individualize(This,flags); 10001 } 10002 static FORCEINLINE HRESULT IWMDRMReader_CancelIndividualization(IWMDRMReader* This) { 10003 return This->lpVtbl->CancelIndividualization(This); 10004 } 10005 static FORCEINLINE HRESULT IWMDRMReader_MonitorLicenseAcquisition(IWMDRMReader* This) { 10006 return This->lpVtbl->MonitorLicenseAcquisition(This); 10007 } 10008 static FORCEINLINE HRESULT IWMDRMReader_CancelMonitorLicenseAcquisition(IWMDRMReader* This) { 10009 return This->lpVtbl->CancelMonitorLicenseAcquisition(This); 10010 } 10011 static FORCEINLINE HRESULT IWMDRMReader_SetDRMProperty(IWMDRMReader* This,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) { 10012 return This->lpVtbl->SetDRMProperty(This,name,type,value,length); 10013 } 10014 static FORCEINLINE HRESULT IWMDRMReader_GetDRMProperty(IWMDRMReader* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { 10015 return This->lpVtbl->GetDRMProperty(This,name,type,value,length); 10016 } 10017 #endif 10018 #endif 10019 10020 #endif 10021 10022 10023 #endif /* __IWMDRMReader_INTERFACE_DEFINED__ */ 10024 10025 /***************************************************************************** 10026 * IWMDRMReader2 interface 10027 */ 10028 #ifndef __IWMDRMReader2_INTERFACE_DEFINED__ 10029 #define __IWMDRMReader2_INTERFACE_DEFINED__ 10030 10031 DEFINE_GUID(IID_IWMDRMReader2, 0xbefe7a75, 0x9f1d, 0x4075, 0xb9,0xd9, 0xa3,0xc3,0x7b,0xda,0x49,0xa0); 10032 #if defined(__cplusplus) && !defined(CINTERFACE) 10033 MIDL_INTERFACE("befe7a75-9f1d-4075-b9d9-a3c37bda49a0") 10034 IWMDRMReader2 : public IWMDRMReader 10035 { 10036 virtual HRESULT STDMETHODCALLTYPE SetEvaluateOutputLevelLicenses( 10037 WINBOOL evaluate) = 0; 10038 10039 virtual HRESULT STDMETHODCALLTYPE GetPlayOutputLevels( 10040 DRM_PLAY_OPL *play, 10041 DWORD *length, 10042 DWORD *level) = 0; 10043 10044 virtual HRESULT STDMETHODCALLTYPE GetCopyOutputLevels( 10045 DRM_COPY_OPL *copy, 10046 DWORD *length, 10047 DWORD *level) = 0; 10048 10049 virtual HRESULT STDMETHODCALLTYPE TryNextLicense( 10050 ) = 0; 10051 10052 }; 10053 #ifdef __CRT_UUID_DECL 10054 __CRT_UUID_DECL(IWMDRMReader2, 0xbefe7a75, 0x9f1d, 0x4075, 0xb9,0xd9, 0xa3,0xc3,0x7b,0xda,0x49,0xa0) 10055 #endif 10056 #else 10057 typedef struct IWMDRMReader2Vtbl { 10058 BEGIN_INTERFACE 10059 10060 /*** IUnknown methods ***/ 10061 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 10062 IWMDRMReader2 *This, 10063 REFIID riid, 10064 void **ppvObject); 10065 10066 ULONG (STDMETHODCALLTYPE *AddRef)( 10067 IWMDRMReader2 *This); 10068 10069 ULONG (STDMETHODCALLTYPE *Release)( 10070 IWMDRMReader2 *This); 10071 10072 /*** IWMDRMReader methods ***/ 10073 HRESULT (STDMETHODCALLTYPE *AcquireLicense)( 10074 IWMDRMReader2 *This, 10075 DWORD flags); 10076 10077 HRESULT (STDMETHODCALLTYPE *CancelLicenseAcquisition)( 10078 IWMDRMReader2 *This); 10079 10080 HRESULT (STDMETHODCALLTYPE *Individualize)( 10081 IWMDRMReader2 *This, 10082 DWORD flags); 10083 10084 HRESULT (STDMETHODCALLTYPE *CancelIndividualization)( 10085 IWMDRMReader2 *This); 10086 10087 HRESULT (STDMETHODCALLTYPE *MonitorLicenseAcquisition)( 10088 IWMDRMReader2 *This); 10089 10090 HRESULT (STDMETHODCALLTYPE *CancelMonitorLicenseAcquisition)( 10091 IWMDRMReader2 *This); 10092 10093 HRESULT (STDMETHODCALLTYPE *SetDRMProperty)( 10094 IWMDRMReader2 *This, 10095 const WCHAR *name, 10096 WMT_ATTR_DATATYPE type, 10097 const BYTE *value, 10098 WORD length); 10099 10100 HRESULT (STDMETHODCALLTYPE *GetDRMProperty)( 10101 IWMDRMReader2 *This, 10102 const WCHAR *name, 10103 WMT_ATTR_DATATYPE *type, 10104 BYTE *value, 10105 WORD *length); 10106 10107 /*** IWMDRMReader2 methods ***/ 10108 HRESULT (STDMETHODCALLTYPE *SetEvaluateOutputLevelLicenses)( 10109 IWMDRMReader2 *This, 10110 WINBOOL evaluate); 10111 10112 HRESULT (STDMETHODCALLTYPE *GetPlayOutputLevels)( 10113 IWMDRMReader2 *This, 10114 DRM_PLAY_OPL *play, 10115 DWORD *length, 10116 DWORD *level); 10117 10118 HRESULT (STDMETHODCALLTYPE *GetCopyOutputLevels)( 10119 IWMDRMReader2 *This, 10120 DRM_COPY_OPL *copy, 10121 DWORD *length, 10122 DWORD *level); 10123 10124 HRESULT (STDMETHODCALLTYPE *TryNextLicense)( 10125 IWMDRMReader2 *This); 10126 10127 END_INTERFACE 10128 } IWMDRMReader2Vtbl; 10129 10130 interface IWMDRMReader2 { 10131 CONST_VTBL IWMDRMReader2Vtbl* lpVtbl; 10132 }; 10133 10134 #ifdef COBJMACROS 10135 #ifndef WIDL_C_INLINE_WRAPPERS 10136 /*** IUnknown methods ***/ 10137 #define IWMDRMReader2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 10138 #define IWMDRMReader2_AddRef(This) (This)->lpVtbl->AddRef(This) 10139 #define IWMDRMReader2_Release(This) (This)->lpVtbl->Release(This) 10140 /*** IWMDRMReader methods ***/ 10141 #define IWMDRMReader2_AcquireLicense(This,flags) (This)->lpVtbl->AcquireLicense(This,flags) 10142 #define IWMDRMReader2_CancelLicenseAcquisition(This) (This)->lpVtbl->CancelLicenseAcquisition(This) 10143 #define IWMDRMReader2_Individualize(This,flags) (This)->lpVtbl->Individualize(This,flags) 10144 #define IWMDRMReader2_CancelIndividualization(This) (This)->lpVtbl->CancelIndividualization(This) 10145 #define IWMDRMReader2_MonitorLicenseAcquisition(This) (This)->lpVtbl->MonitorLicenseAcquisition(This) 10146 #define IWMDRMReader2_CancelMonitorLicenseAcquisition(This) (This)->lpVtbl->CancelMonitorLicenseAcquisition(This) 10147 #define IWMDRMReader2_SetDRMProperty(This,name,type,value,length) (This)->lpVtbl->SetDRMProperty(This,name,type,value,length) 10148 #define IWMDRMReader2_GetDRMProperty(This,name,type,value,length) (This)->lpVtbl->GetDRMProperty(This,name,type,value,length) 10149 /*** IWMDRMReader2 methods ***/ 10150 #define IWMDRMReader2_SetEvaluateOutputLevelLicenses(This,evaluate) (This)->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate) 10151 #define IWMDRMReader2_GetPlayOutputLevels(This,play,length,level) (This)->lpVtbl->GetPlayOutputLevels(This,play,length,level) 10152 #define IWMDRMReader2_GetCopyOutputLevels(This,copy,length,level) (This)->lpVtbl->GetCopyOutputLevels(This,copy,length,level) 10153 #define IWMDRMReader2_TryNextLicense(This) (This)->lpVtbl->TryNextLicense(This) 10154 #else 10155 /*** IUnknown methods ***/ 10156 static FORCEINLINE HRESULT IWMDRMReader2_QueryInterface(IWMDRMReader2* This,REFIID riid,void **ppvObject) { 10157 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 10158 } 10159 static FORCEINLINE ULONG IWMDRMReader2_AddRef(IWMDRMReader2* This) { 10160 return This->lpVtbl->AddRef(This); 10161 } 10162 static FORCEINLINE ULONG IWMDRMReader2_Release(IWMDRMReader2* This) { 10163 return This->lpVtbl->Release(This); 10164 } 10165 /*** IWMDRMReader methods ***/ 10166 static FORCEINLINE HRESULT IWMDRMReader2_AcquireLicense(IWMDRMReader2* This,DWORD flags) { 10167 return This->lpVtbl->AcquireLicense(This,flags); 10168 } 10169 static FORCEINLINE HRESULT IWMDRMReader2_CancelLicenseAcquisition(IWMDRMReader2* This) { 10170 return This->lpVtbl->CancelLicenseAcquisition(This); 10171 } 10172 static FORCEINLINE HRESULT IWMDRMReader2_Individualize(IWMDRMReader2* This,DWORD flags) { 10173 return This->lpVtbl->Individualize(This,flags); 10174 } 10175 static FORCEINLINE HRESULT IWMDRMReader2_CancelIndividualization(IWMDRMReader2* This) { 10176 return This->lpVtbl->CancelIndividualization(This); 10177 } 10178 static FORCEINLINE HRESULT IWMDRMReader2_MonitorLicenseAcquisition(IWMDRMReader2* This) { 10179 return This->lpVtbl->MonitorLicenseAcquisition(This); 10180 } 10181 static FORCEINLINE HRESULT IWMDRMReader2_CancelMonitorLicenseAcquisition(IWMDRMReader2* This) { 10182 return This->lpVtbl->CancelMonitorLicenseAcquisition(This); 10183 } 10184 static FORCEINLINE HRESULT IWMDRMReader2_SetDRMProperty(IWMDRMReader2* This,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) { 10185 return This->lpVtbl->SetDRMProperty(This,name,type,value,length); 10186 } 10187 static FORCEINLINE HRESULT IWMDRMReader2_GetDRMProperty(IWMDRMReader2* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { 10188 return This->lpVtbl->GetDRMProperty(This,name,type,value,length); 10189 } 10190 /*** IWMDRMReader2 methods ***/ 10191 static FORCEINLINE HRESULT IWMDRMReader2_SetEvaluateOutputLevelLicenses(IWMDRMReader2* This,WINBOOL evaluate) { 10192 return This->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate); 10193 } 10194 static FORCEINLINE HRESULT IWMDRMReader2_GetPlayOutputLevels(IWMDRMReader2* This,DRM_PLAY_OPL *play,DWORD *length,DWORD *level) { 10195 return This->lpVtbl->GetPlayOutputLevels(This,play,length,level); 10196 } 10197 static FORCEINLINE HRESULT IWMDRMReader2_GetCopyOutputLevels(IWMDRMReader2* This,DRM_COPY_OPL *copy,DWORD *length,DWORD *level) { 10198 return This->lpVtbl->GetCopyOutputLevels(This,copy,length,level); 10199 } 10200 static FORCEINLINE HRESULT IWMDRMReader2_TryNextLicense(IWMDRMReader2* This) { 10201 return This->lpVtbl->TryNextLicense(This); 10202 } 10203 #endif 10204 #endif 10205 10206 #endif 10207 10208 10209 #endif /* __IWMDRMReader2_INTERFACE_DEFINED__ */ 10210 10211 /***************************************************************************** 10212 * IWMDRMReader3 interface 10213 */ 10214 #ifndef __IWMDRMReader3_INTERFACE_DEFINED__ 10215 #define __IWMDRMReader3_INTERFACE_DEFINED__ 10216 10217 DEFINE_GUID(IID_IWMDRMReader3, 0xe08672de, 0xf1e7, 0x4ff4, 0xa0,0xa3, 0xfc,0x4b,0x08,0xe4,0xca,0xf8); 10218 #if defined(__cplusplus) && !defined(CINTERFACE) 10219 MIDL_INTERFACE("e08672de-f1e7-4ff4-a0a3-fc4b08e4caf8") 10220 IWMDRMReader3 : public IWMDRMReader2 10221 { 10222 virtual HRESULT STDMETHODCALLTYPE GetInclusionList( 10223 GUID **guids, 10224 DWORD *count) = 0; 10225 10226 }; 10227 #ifdef __CRT_UUID_DECL 10228 __CRT_UUID_DECL(IWMDRMReader3, 0xe08672de, 0xf1e7, 0x4ff4, 0xa0,0xa3, 0xfc,0x4b,0x08,0xe4,0xca,0xf8) 10229 #endif 10230 #else 10231 typedef struct IWMDRMReader3Vtbl { 10232 BEGIN_INTERFACE 10233 10234 /*** IUnknown methods ***/ 10235 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 10236 IWMDRMReader3 *This, 10237 REFIID riid, 10238 void **ppvObject); 10239 10240 ULONG (STDMETHODCALLTYPE *AddRef)( 10241 IWMDRMReader3 *This); 10242 10243 ULONG (STDMETHODCALLTYPE *Release)( 10244 IWMDRMReader3 *This); 10245 10246 /*** IWMDRMReader methods ***/ 10247 HRESULT (STDMETHODCALLTYPE *AcquireLicense)( 10248 IWMDRMReader3 *This, 10249 DWORD flags); 10250 10251 HRESULT (STDMETHODCALLTYPE *CancelLicenseAcquisition)( 10252 IWMDRMReader3 *This); 10253 10254 HRESULT (STDMETHODCALLTYPE *Individualize)( 10255 IWMDRMReader3 *This, 10256 DWORD flags); 10257 10258 HRESULT (STDMETHODCALLTYPE *CancelIndividualization)( 10259 IWMDRMReader3 *This); 10260 10261 HRESULT (STDMETHODCALLTYPE *MonitorLicenseAcquisition)( 10262 IWMDRMReader3 *This); 10263 10264 HRESULT (STDMETHODCALLTYPE *CancelMonitorLicenseAcquisition)( 10265 IWMDRMReader3 *This); 10266 10267 HRESULT (STDMETHODCALLTYPE *SetDRMProperty)( 10268 IWMDRMReader3 *This, 10269 const WCHAR *name, 10270 WMT_ATTR_DATATYPE type, 10271 const BYTE *value, 10272 WORD length); 10273 10274 HRESULT (STDMETHODCALLTYPE *GetDRMProperty)( 10275 IWMDRMReader3 *This, 10276 const WCHAR *name, 10277 WMT_ATTR_DATATYPE *type, 10278 BYTE *value, 10279 WORD *length); 10280 10281 /*** IWMDRMReader2 methods ***/ 10282 HRESULT (STDMETHODCALLTYPE *SetEvaluateOutputLevelLicenses)( 10283 IWMDRMReader3 *This, 10284 WINBOOL evaluate); 10285 10286 HRESULT (STDMETHODCALLTYPE *GetPlayOutputLevels)( 10287 IWMDRMReader3 *This, 10288 DRM_PLAY_OPL *play, 10289 DWORD *length, 10290 DWORD *level); 10291 10292 HRESULT (STDMETHODCALLTYPE *GetCopyOutputLevels)( 10293 IWMDRMReader3 *This, 10294 DRM_COPY_OPL *copy, 10295 DWORD *length, 10296 DWORD *level); 10297 10298 HRESULT (STDMETHODCALLTYPE *TryNextLicense)( 10299 IWMDRMReader3 *This); 10300 10301 /*** IWMDRMReader3 methods ***/ 10302 HRESULT (STDMETHODCALLTYPE *GetInclusionList)( 10303 IWMDRMReader3 *This, 10304 GUID **guids, 10305 DWORD *count); 10306 10307 END_INTERFACE 10308 } IWMDRMReader3Vtbl; 10309 10310 interface IWMDRMReader3 { 10311 CONST_VTBL IWMDRMReader3Vtbl* lpVtbl; 10312 }; 10313 10314 #ifdef COBJMACROS 10315 #ifndef WIDL_C_INLINE_WRAPPERS 10316 /*** IUnknown methods ***/ 10317 #define IWMDRMReader3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 10318 #define IWMDRMReader3_AddRef(This) (This)->lpVtbl->AddRef(This) 10319 #define IWMDRMReader3_Release(This) (This)->lpVtbl->Release(This) 10320 /*** IWMDRMReader methods ***/ 10321 #define IWMDRMReader3_AcquireLicense(This,flags) (This)->lpVtbl->AcquireLicense(This,flags) 10322 #define IWMDRMReader3_CancelLicenseAcquisition(This) (This)->lpVtbl->CancelLicenseAcquisition(This) 10323 #define IWMDRMReader3_Individualize(This,flags) (This)->lpVtbl->Individualize(This,flags) 10324 #define IWMDRMReader3_CancelIndividualization(This) (This)->lpVtbl->CancelIndividualization(This) 10325 #define IWMDRMReader3_MonitorLicenseAcquisition(This) (This)->lpVtbl->MonitorLicenseAcquisition(This) 10326 #define IWMDRMReader3_CancelMonitorLicenseAcquisition(This) (This)->lpVtbl->CancelMonitorLicenseAcquisition(This) 10327 #define IWMDRMReader3_SetDRMProperty(This,name,type,value,length) (This)->lpVtbl->SetDRMProperty(This,name,type,value,length) 10328 #define IWMDRMReader3_GetDRMProperty(This,name,type,value,length) (This)->lpVtbl->GetDRMProperty(This,name,type,value,length) 10329 /*** IWMDRMReader2 methods ***/ 10330 #define IWMDRMReader3_SetEvaluateOutputLevelLicenses(This,evaluate) (This)->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate) 10331 #define IWMDRMReader3_GetPlayOutputLevels(This,play,length,level) (This)->lpVtbl->GetPlayOutputLevels(This,play,length,level) 10332 #define IWMDRMReader3_GetCopyOutputLevels(This,copy,length,level) (This)->lpVtbl->GetCopyOutputLevels(This,copy,length,level) 10333 #define IWMDRMReader3_TryNextLicense(This) (This)->lpVtbl->TryNextLicense(This) 10334 /*** IWMDRMReader3 methods ***/ 10335 #define IWMDRMReader3_GetInclusionList(This,guids,count) (This)->lpVtbl->GetInclusionList(This,guids,count) 10336 #else 10337 /*** IUnknown methods ***/ 10338 static FORCEINLINE HRESULT IWMDRMReader3_QueryInterface(IWMDRMReader3* This,REFIID riid,void **ppvObject) { 10339 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 10340 } 10341 static FORCEINLINE ULONG IWMDRMReader3_AddRef(IWMDRMReader3* This) { 10342 return This->lpVtbl->AddRef(This); 10343 } 10344 static FORCEINLINE ULONG IWMDRMReader3_Release(IWMDRMReader3* This) { 10345 return This->lpVtbl->Release(This); 10346 } 10347 /*** IWMDRMReader methods ***/ 10348 static FORCEINLINE HRESULT IWMDRMReader3_AcquireLicense(IWMDRMReader3* This,DWORD flags) { 10349 return This->lpVtbl->AcquireLicense(This,flags); 10350 } 10351 static FORCEINLINE HRESULT IWMDRMReader3_CancelLicenseAcquisition(IWMDRMReader3* This) { 10352 return This->lpVtbl->CancelLicenseAcquisition(This); 10353 } 10354 static FORCEINLINE HRESULT IWMDRMReader3_Individualize(IWMDRMReader3* This,DWORD flags) { 10355 return This->lpVtbl->Individualize(This,flags); 10356 } 10357 static FORCEINLINE HRESULT IWMDRMReader3_CancelIndividualization(IWMDRMReader3* This) { 10358 return This->lpVtbl->CancelIndividualization(This); 10359 } 10360 static FORCEINLINE HRESULT IWMDRMReader3_MonitorLicenseAcquisition(IWMDRMReader3* This) { 10361 return This->lpVtbl->MonitorLicenseAcquisition(This); 10362 } 10363 static FORCEINLINE HRESULT IWMDRMReader3_CancelMonitorLicenseAcquisition(IWMDRMReader3* This) { 10364 return This->lpVtbl->CancelMonitorLicenseAcquisition(This); 10365 } 10366 static FORCEINLINE HRESULT IWMDRMReader3_SetDRMProperty(IWMDRMReader3* This,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) { 10367 return This->lpVtbl->SetDRMProperty(This,name,type,value,length); 10368 } 10369 static FORCEINLINE HRESULT IWMDRMReader3_GetDRMProperty(IWMDRMReader3* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { 10370 return This->lpVtbl->GetDRMProperty(This,name,type,value,length); 10371 } 10372 /*** IWMDRMReader2 methods ***/ 10373 static FORCEINLINE HRESULT IWMDRMReader3_SetEvaluateOutputLevelLicenses(IWMDRMReader3* This,WINBOOL evaluate) { 10374 return This->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate); 10375 } 10376 static FORCEINLINE HRESULT IWMDRMReader3_GetPlayOutputLevels(IWMDRMReader3* This,DRM_PLAY_OPL *play,DWORD *length,DWORD *level) { 10377 return This->lpVtbl->GetPlayOutputLevels(This,play,length,level); 10378 } 10379 static FORCEINLINE HRESULT IWMDRMReader3_GetCopyOutputLevels(IWMDRMReader3* This,DRM_COPY_OPL *copy,DWORD *length,DWORD *level) { 10380 return This->lpVtbl->GetCopyOutputLevels(This,copy,length,level); 10381 } 10382 static FORCEINLINE HRESULT IWMDRMReader3_TryNextLicense(IWMDRMReader3* This) { 10383 return This->lpVtbl->TryNextLicense(This); 10384 } 10385 /*** IWMDRMReader3 methods ***/ 10386 static FORCEINLINE HRESULT IWMDRMReader3_GetInclusionList(IWMDRMReader3* This,GUID **guids,DWORD *count) { 10387 return This->lpVtbl->GetInclusionList(This,guids,count); 10388 } 10389 #endif 10390 #endif 10391 10392 #endif 10393 10394 10395 #endif /* __IWMDRMReader3_INTERFACE_DEFINED__ */ 10396 10397 /***************************************************************************** 10398 * IWMReaderAccelerator interface 10399 */ 10400 #ifndef __IWMReaderAccelerator_INTERFACE_DEFINED__ 10401 #define __IWMReaderAccelerator_INTERFACE_DEFINED__ 10402 10403 DEFINE_GUID(IID_IWMReaderAccelerator, 0xbddc4d08, 0x944d, 0x4d52, 0xa6,0x12, 0x46,0xc3,0xfd,0xa0,0x7d,0xd4); 10404 #if defined(__cplusplus) && !defined(CINTERFACE) 10405 MIDL_INTERFACE("bddc4d08-944d-4d52-a612-46c3fda07dd4") 10406 IWMReaderAccelerator : public IUnknown 10407 { 10408 virtual HRESULT STDMETHODCALLTYPE GetCodecInterface( 10409 DWORD output, 10410 REFIID riid, 10411 void **codec) = 0; 10412 10413 virtual HRESULT STDMETHODCALLTYPE Notify( 10414 DWORD output, 10415 WM_MEDIA_TYPE *subtype) = 0; 10416 10417 }; 10418 #ifdef __CRT_UUID_DECL 10419 __CRT_UUID_DECL(IWMReaderAccelerator, 0xbddc4d08, 0x944d, 0x4d52, 0xa6,0x12, 0x46,0xc3,0xfd,0xa0,0x7d,0xd4) 10420 #endif 10421 #else 10422 typedef struct IWMReaderAcceleratorVtbl { 10423 BEGIN_INTERFACE 10424 10425 /*** IUnknown methods ***/ 10426 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 10427 IWMReaderAccelerator *This, 10428 REFIID riid, 10429 void **ppvObject); 10430 10431 ULONG (STDMETHODCALLTYPE *AddRef)( 10432 IWMReaderAccelerator *This); 10433 10434 ULONG (STDMETHODCALLTYPE *Release)( 10435 IWMReaderAccelerator *This); 10436 10437 /*** IWMReaderAccelerator methods ***/ 10438 HRESULT (STDMETHODCALLTYPE *GetCodecInterface)( 10439 IWMReaderAccelerator *This, 10440 DWORD output, 10441 REFIID riid, 10442 void **codec); 10443 10444 HRESULT (STDMETHODCALLTYPE *Notify)( 10445 IWMReaderAccelerator *This, 10446 DWORD output, 10447 WM_MEDIA_TYPE *subtype); 10448 10449 END_INTERFACE 10450 } IWMReaderAcceleratorVtbl; 10451 10452 interface IWMReaderAccelerator { 10453 CONST_VTBL IWMReaderAcceleratorVtbl* lpVtbl; 10454 }; 10455 10456 #ifdef COBJMACROS 10457 #ifndef WIDL_C_INLINE_WRAPPERS 10458 /*** IUnknown methods ***/ 10459 #define IWMReaderAccelerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 10460 #define IWMReaderAccelerator_AddRef(This) (This)->lpVtbl->AddRef(This) 10461 #define IWMReaderAccelerator_Release(This) (This)->lpVtbl->Release(This) 10462 /*** IWMReaderAccelerator methods ***/ 10463 #define IWMReaderAccelerator_GetCodecInterface(This,output,riid,codec) (This)->lpVtbl->GetCodecInterface(This,output,riid,codec) 10464 #define IWMReaderAccelerator_Notify(This,output,subtype) (This)->lpVtbl->Notify(This,output,subtype) 10465 #else 10466 /*** IUnknown methods ***/ 10467 static FORCEINLINE HRESULT IWMReaderAccelerator_QueryInterface(IWMReaderAccelerator* This,REFIID riid,void **ppvObject) { 10468 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 10469 } 10470 static FORCEINLINE ULONG IWMReaderAccelerator_AddRef(IWMReaderAccelerator* This) { 10471 return This->lpVtbl->AddRef(This); 10472 } 10473 static FORCEINLINE ULONG IWMReaderAccelerator_Release(IWMReaderAccelerator* This) { 10474 return This->lpVtbl->Release(This); 10475 } 10476 /*** IWMReaderAccelerator methods ***/ 10477 static FORCEINLINE HRESULT IWMReaderAccelerator_GetCodecInterface(IWMReaderAccelerator* This,DWORD output,REFIID riid,void **codec) { 10478 return This->lpVtbl->GetCodecInterface(This,output,riid,codec); 10479 } 10480 static FORCEINLINE HRESULT IWMReaderAccelerator_Notify(IWMReaderAccelerator* This,DWORD output,WM_MEDIA_TYPE *subtype) { 10481 return This->lpVtbl->Notify(This,output,subtype); 10482 } 10483 #endif 10484 #endif 10485 10486 #endif 10487 10488 10489 #endif /* __IWMReaderAccelerator_INTERFACE_DEFINED__ */ 10490 10491 /***************************************************************************** 10492 * IWMReaderTimecode interface 10493 */ 10494 #ifndef __IWMReaderTimecode_INTERFACE_DEFINED__ 10495 #define __IWMReaderTimecode_INTERFACE_DEFINED__ 10496 10497 DEFINE_GUID(IID_IWMReaderTimecode, 0xf369e2f0, 0xe081, 0x4fe6, 0x84,0x50, 0xb8,0x10,0xb2,0xf4,0x10,0xd1); 10498 #if defined(__cplusplus) && !defined(CINTERFACE) 10499 MIDL_INTERFACE("f369e2f0-e081-4fe6-8450-b810b2f410d1") 10500 IWMReaderTimecode : public IUnknown 10501 { 10502 virtual HRESULT STDMETHODCALLTYPE GetTimecodeRangeCount( 10503 WORD num, 10504 WORD *count) = 0; 10505 10506 virtual HRESULT STDMETHODCALLTYPE GetTimecodeRangeBounds( 10507 WORD stream, 10508 WORD range, 10509 DWORD *start_timecode, 10510 DWORD *end_timecode) = 0; 10511 10512 }; 10513 #ifdef __CRT_UUID_DECL 10514 __CRT_UUID_DECL(IWMReaderTimecode, 0xf369e2f0, 0xe081, 0x4fe6, 0x84,0x50, 0xb8,0x10,0xb2,0xf4,0x10,0xd1) 10515 #endif 10516 #else 10517 typedef struct IWMReaderTimecodeVtbl { 10518 BEGIN_INTERFACE 10519 10520 /*** IUnknown methods ***/ 10521 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 10522 IWMReaderTimecode *This, 10523 REFIID riid, 10524 void **ppvObject); 10525 10526 ULONG (STDMETHODCALLTYPE *AddRef)( 10527 IWMReaderTimecode *This); 10528 10529 ULONG (STDMETHODCALLTYPE *Release)( 10530 IWMReaderTimecode *This); 10531 10532 /*** IWMReaderTimecode methods ***/ 10533 HRESULT (STDMETHODCALLTYPE *GetTimecodeRangeCount)( 10534 IWMReaderTimecode *This, 10535 WORD num, 10536 WORD *count); 10537 10538 HRESULT (STDMETHODCALLTYPE *GetTimecodeRangeBounds)( 10539 IWMReaderTimecode *This, 10540 WORD stream, 10541 WORD range, 10542 DWORD *start_timecode, 10543 DWORD *end_timecode); 10544 10545 END_INTERFACE 10546 } IWMReaderTimecodeVtbl; 10547 10548 interface IWMReaderTimecode { 10549 CONST_VTBL IWMReaderTimecodeVtbl* lpVtbl; 10550 }; 10551 10552 #ifdef COBJMACROS 10553 #ifndef WIDL_C_INLINE_WRAPPERS 10554 /*** IUnknown methods ***/ 10555 #define IWMReaderTimecode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 10556 #define IWMReaderTimecode_AddRef(This) (This)->lpVtbl->AddRef(This) 10557 #define IWMReaderTimecode_Release(This) (This)->lpVtbl->Release(This) 10558 /*** IWMReaderTimecode methods ***/ 10559 #define IWMReaderTimecode_GetTimecodeRangeCount(This,num,count) (This)->lpVtbl->GetTimecodeRangeCount(This,num,count) 10560 #define IWMReaderTimecode_GetTimecodeRangeBounds(This,stream,range,start_timecode,end_timecode) (This)->lpVtbl->GetTimecodeRangeBounds(This,stream,range,start_timecode,end_timecode) 10561 #else 10562 /*** IUnknown methods ***/ 10563 static FORCEINLINE HRESULT IWMReaderTimecode_QueryInterface(IWMReaderTimecode* This,REFIID riid,void **ppvObject) { 10564 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 10565 } 10566 static FORCEINLINE ULONG IWMReaderTimecode_AddRef(IWMReaderTimecode* This) { 10567 return This->lpVtbl->AddRef(This); 10568 } 10569 static FORCEINLINE ULONG IWMReaderTimecode_Release(IWMReaderTimecode* This) { 10570 return This->lpVtbl->Release(This); 10571 } 10572 /*** IWMReaderTimecode methods ***/ 10573 static FORCEINLINE HRESULT IWMReaderTimecode_GetTimecodeRangeCount(IWMReaderTimecode* This,WORD num,WORD *count) { 10574 return This->lpVtbl->GetTimecodeRangeCount(This,num,count); 10575 } 10576 static FORCEINLINE HRESULT IWMReaderTimecode_GetTimecodeRangeBounds(IWMReaderTimecode* This,WORD stream,WORD range,DWORD *start_timecode,DWORD *end_timecode) { 10577 return This->lpVtbl->GetTimecodeRangeBounds(This,stream,range,start_timecode,end_timecode); 10578 } 10579 #endif 10580 #endif 10581 10582 #endif 10583 10584 10585 #endif /* __IWMReaderTimecode_INTERFACE_DEFINED__ */ 10586 10587 /***************************************************************************** 10588 * IWMReaderTypeNegotiation interface 10589 */ 10590 #ifndef __IWMReaderTypeNegotiation_INTERFACE_DEFINED__ 10591 #define __IWMReaderTypeNegotiation_INTERFACE_DEFINED__ 10592 10593 DEFINE_GUID(IID_IWMReaderTypeNegotiation, 0xfdbe5592, 0x81a1, 0x41ea, 0x93,0xbd, 0x73,0x5c,0xad,0x1a,0xdc,0x05); 10594 #if defined(__cplusplus) && !defined(CINTERFACE) 10595 MIDL_INTERFACE("fdbe5592-81a1-41ea-93bd-735cad1adc05") 10596 IWMReaderTypeNegotiation : public IUnknown 10597 { 10598 virtual HRESULT STDMETHODCALLTYPE TryOutputProps( 10599 DWORD output, 10600 IWMOutputMediaProps *props) = 0; 10601 10602 }; 10603 #ifdef __CRT_UUID_DECL 10604 __CRT_UUID_DECL(IWMReaderTypeNegotiation, 0xfdbe5592, 0x81a1, 0x41ea, 0x93,0xbd, 0x73,0x5c,0xad,0x1a,0xdc,0x05) 10605 #endif 10606 #else 10607 typedef struct IWMReaderTypeNegotiationVtbl { 10608 BEGIN_INTERFACE 10609 10610 /*** IUnknown methods ***/ 10611 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 10612 IWMReaderTypeNegotiation *This, 10613 REFIID riid, 10614 void **ppvObject); 10615 10616 ULONG (STDMETHODCALLTYPE *AddRef)( 10617 IWMReaderTypeNegotiation *This); 10618 10619 ULONG (STDMETHODCALLTYPE *Release)( 10620 IWMReaderTypeNegotiation *This); 10621 10622 /*** IWMReaderTypeNegotiation methods ***/ 10623 HRESULT (STDMETHODCALLTYPE *TryOutputProps)( 10624 IWMReaderTypeNegotiation *This, 10625 DWORD output, 10626 IWMOutputMediaProps *props); 10627 10628 END_INTERFACE 10629 } IWMReaderTypeNegotiationVtbl; 10630 10631 interface IWMReaderTypeNegotiation { 10632 CONST_VTBL IWMReaderTypeNegotiationVtbl* lpVtbl; 10633 }; 10634 10635 #ifdef COBJMACROS 10636 #ifndef WIDL_C_INLINE_WRAPPERS 10637 /*** IUnknown methods ***/ 10638 #define IWMReaderTypeNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 10639 #define IWMReaderTypeNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This) 10640 #define IWMReaderTypeNegotiation_Release(This) (This)->lpVtbl->Release(This) 10641 /*** IWMReaderTypeNegotiation methods ***/ 10642 #define IWMReaderTypeNegotiation_TryOutputProps(This,output,props) (This)->lpVtbl->TryOutputProps(This,output,props) 10643 #else 10644 /*** IUnknown methods ***/ 10645 static FORCEINLINE HRESULT IWMReaderTypeNegotiation_QueryInterface(IWMReaderTypeNegotiation* This,REFIID riid,void **ppvObject) { 10646 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 10647 } 10648 static FORCEINLINE ULONG IWMReaderTypeNegotiation_AddRef(IWMReaderTypeNegotiation* This) { 10649 return This->lpVtbl->AddRef(This); 10650 } 10651 static FORCEINLINE ULONG IWMReaderTypeNegotiation_Release(IWMReaderTypeNegotiation* This) { 10652 return This->lpVtbl->Release(This); 10653 } 10654 /*** IWMReaderTypeNegotiation methods ***/ 10655 static FORCEINLINE HRESULT IWMReaderTypeNegotiation_TryOutputProps(IWMReaderTypeNegotiation* This,DWORD output,IWMOutputMediaProps *props) { 10656 return This->lpVtbl->TryOutputProps(This,output,props); 10657 } 10658 #endif 10659 #endif 10660 10661 #endif 10662 10663 10664 #endif /* __IWMReaderTypeNegotiation_INTERFACE_DEFINED__ */ 10665 10666 /***************************************************************************** 10667 * IWMLanguageList interface 10668 */ 10669 #ifndef __IWMLanguageList_INTERFACE_DEFINED__ 10670 #define __IWMLanguageList_INTERFACE_DEFINED__ 10671 10672 DEFINE_GUID(IID_IWMLanguageList, 0xdf683f00, 0x2d49, 0x4d8e, 0x92,0xb7, 0xfb,0x19,0xf6,0xa0,0xdc,0x57); 10673 #if defined(__cplusplus) && !defined(CINTERFACE) 10674 MIDL_INTERFACE("df683f00-2d49-4d8e-92b7-fb19f6a0dc57") 10675 IWMLanguageList : public IUnknown 10676 { 10677 virtual HRESULT STDMETHODCALLTYPE GetLanguageCount( 10678 WORD *count) = 0; 10679 10680 virtual HRESULT STDMETHODCALLTYPE GetLanguageDetails( 10681 WORD index, 10682 WCHAR *language, 10683 WORD *length) = 0; 10684 10685 virtual HRESULT STDMETHODCALLTYPE AddLanguageByRFC1766String( 10686 LPCWSTR_WMSDK_TYPE_SAFE language, 10687 WORD *index) = 0; 10688 10689 }; 10690 #ifdef __CRT_UUID_DECL 10691 __CRT_UUID_DECL(IWMLanguageList, 0xdf683f00, 0x2d49, 0x4d8e, 0x92,0xb7, 0xfb,0x19,0xf6,0xa0,0xdc,0x57) 10692 #endif 10693 #else 10694 typedef struct IWMLanguageListVtbl { 10695 BEGIN_INTERFACE 10696 10697 /*** IUnknown methods ***/ 10698 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 10699 IWMLanguageList *This, 10700 REFIID riid, 10701 void **ppvObject); 10702 10703 ULONG (STDMETHODCALLTYPE *AddRef)( 10704 IWMLanguageList *This); 10705 10706 ULONG (STDMETHODCALLTYPE *Release)( 10707 IWMLanguageList *This); 10708 10709 /*** IWMLanguageList methods ***/ 10710 HRESULT (STDMETHODCALLTYPE *GetLanguageCount)( 10711 IWMLanguageList *This, 10712 WORD *count); 10713 10714 HRESULT (STDMETHODCALLTYPE *GetLanguageDetails)( 10715 IWMLanguageList *This, 10716 WORD index, 10717 WCHAR *language, 10718 WORD *length); 10719 10720 HRESULT (STDMETHODCALLTYPE *AddLanguageByRFC1766String)( 10721 IWMLanguageList *This, 10722 LPCWSTR_WMSDK_TYPE_SAFE language, 10723 WORD *index); 10724 10725 END_INTERFACE 10726 } IWMLanguageListVtbl; 10727 10728 interface IWMLanguageList { 10729 CONST_VTBL IWMLanguageListVtbl* lpVtbl; 10730 }; 10731 10732 #ifdef COBJMACROS 10733 #ifndef WIDL_C_INLINE_WRAPPERS 10734 /*** IUnknown methods ***/ 10735 #define IWMLanguageList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 10736 #define IWMLanguageList_AddRef(This) (This)->lpVtbl->AddRef(This) 10737 #define IWMLanguageList_Release(This) (This)->lpVtbl->Release(This) 10738 /*** IWMLanguageList methods ***/ 10739 #define IWMLanguageList_GetLanguageCount(This,count) (This)->lpVtbl->GetLanguageCount(This,count) 10740 #define IWMLanguageList_GetLanguageDetails(This,index,language,length) (This)->lpVtbl->GetLanguageDetails(This,index,language,length) 10741 #define IWMLanguageList_AddLanguageByRFC1766String(This,language,index) (This)->lpVtbl->AddLanguageByRFC1766String(This,language,index) 10742 #else 10743 /*** IUnknown methods ***/ 10744 static FORCEINLINE HRESULT IWMLanguageList_QueryInterface(IWMLanguageList* This,REFIID riid,void **ppvObject) { 10745 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 10746 } 10747 static FORCEINLINE ULONG IWMLanguageList_AddRef(IWMLanguageList* This) { 10748 return This->lpVtbl->AddRef(This); 10749 } 10750 static FORCEINLINE ULONG IWMLanguageList_Release(IWMLanguageList* This) { 10751 return This->lpVtbl->Release(This); 10752 } 10753 /*** IWMLanguageList methods ***/ 10754 static FORCEINLINE HRESULT IWMLanguageList_GetLanguageCount(IWMLanguageList* This,WORD *count) { 10755 return This->lpVtbl->GetLanguageCount(This,count); 10756 } 10757 static FORCEINLINE HRESULT IWMLanguageList_GetLanguageDetails(IWMLanguageList* This,WORD index,WCHAR *language,WORD *length) { 10758 return This->lpVtbl->GetLanguageDetails(This,index,language,length); 10759 } 10760 static FORCEINLINE HRESULT IWMLanguageList_AddLanguageByRFC1766String(IWMLanguageList* This,LPCWSTR_WMSDK_TYPE_SAFE language,WORD *index) { 10761 return This->lpVtbl->AddLanguageByRFC1766String(This,language,index); 10762 } 10763 #endif 10764 #endif 10765 10766 #endif 10767 10768 10769 #endif /* __IWMLanguageList_INTERFACE_DEFINED__ */ 10770 10771 /***************************************************************************** 10772 * IWMReaderPlaylistBurn interface 10773 */ 10774 #ifndef __IWMReaderPlaylistBurn_INTERFACE_DEFINED__ 10775 #define __IWMReaderPlaylistBurn_INTERFACE_DEFINED__ 10776 10777 DEFINE_GUID(IID_IWMReaderPlaylistBurn, 0xf28c0300, 0x9baa, 0x4477, 0xa8,0x46, 0x17,0x44,0xd9,0xcb,0xf5,0x33); 10778 #if defined(__cplusplus) && !defined(CINTERFACE) 10779 MIDL_INTERFACE("f28c0300-9baa-4477-a846-1744d9cbf533") 10780 IWMReaderPlaylistBurn : public IUnknown 10781 { 10782 virtual HRESULT STDMETHODCALLTYPE InitPlaylistBurn( 10783 DWORD count, 10784 LPCWSTR_WMSDK_TYPE_SAFE *filenames, 10785 IWMStatusCallback *callback, 10786 void *context) = 0; 10787 10788 virtual HRESULT STDMETHODCALLTYPE GetInitResults( 10789 DWORD count, 10790 HRESULT *stat) = 0; 10791 10792 virtual HRESULT STDMETHODCALLTYPE Cancel( 10793 ) = 0; 10794 10795 virtual HRESULT STDMETHODCALLTYPE EndPlaylistBurn( 10796 HRESULT result) = 0; 10797 10798 }; 10799 #ifdef __CRT_UUID_DECL 10800 __CRT_UUID_DECL(IWMReaderPlaylistBurn, 0xf28c0300, 0x9baa, 0x4477, 0xa8,0x46, 0x17,0x44,0xd9,0xcb,0xf5,0x33) 10801 #endif 10802 #else 10803 typedef struct IWMReaderPlaylistBurnVtbl { 10804 BEGIN_INTERFACE 10805 10806 /*** IUnknown methods ***/ 10807 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 10808 IWMReaderPlaylistBurn *This, 10809 REFIID riid, 10810 void **ppvObject); 10811 10812 ULONG (STDMETHODCALLTYPE *AddRef)( 10813 IWMReaderPlaylistBurn *This); 10814 10815 ULONG (STDMETHODCALLTYPE *Release)( 10816 IWMReaderPlaylistBurn *This); 10817 10818 /*** IWMReaderPlaylistBurn methods ***/ 10819 HRESULT (STDMETHODCALLTYPE *InitPlaylistBurn)( 10820 IWMReaderPlaylistBurn *This, 10821 DWORD count, 10822 LPCWSTR_WMSDK_TYPE_SAFE *filenames, 10823 IWMStatusCallback *callback, 10824 void *context); 10825 10826 HRESULT (STDMETHODCALLTYPE *GetInitResults)( 10827 IWMReaderPlaylistBurn *This, 10828 DWORD count, 10829 HRESULT *stat); 10830 10831 HRESULT (STDMETHODCALLTYPE *Cancel)( 10832 IWMReaderPlaylistBurn *This); 10833 10834 HRESULT (STDMETHODCALLTYPE *EndPlaylistBurn)( 10835 IWMReaderPlaylistBurn *This, 10836 HRESULT result); 10837 10838 END_INTERFACE 10839 } IWMReaderPlaylistBurnVtbl; 10840 10841 interface IWMReaderPlaylistBurn { 10842 CONST_VTBL IWMReaderPlaylistBurnVtbl* lpVtbl; 10843 }; 10844 10845 #ifdef COBJMACROS 10846 #ifndef WIDL_C_INLINE_WRAPPERS 10847 /*** IUnknown methods ***/ 10848 #define IWMReaderPlaylistBurn_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 10849 #define IWMReaderPlaylistBurn_AddRef(This) (This)->lpVtbl->AddRef(This) 10850 #define IWMReaderPlaylistBurn_Release(This) (This)->lpVtbl->Release(This) 10851 /*** IWMReaderPlaylistBurn methods ***/ 10852 #define IWMReaderPlaylistBurn_InitPlaylistBurn(This,count,filenames,callback,context) (This)->lpVtbl->InitPlaylistBurn(This,count,filenames,callback,context) 10853 #define IWMReaderPlaylistBurn_GetInitResults(This,count,stat) (This)->lpVtbl->GetInitResults(This,count,stat) 10854 #define IWMReaderPlaylistBurn_Cancel(This) (This)->lpVtbl->Cancel(This) 10855 #define IWMReaderPlaylistBurn_EndPlaylistBurn(This,result) (This)->lpVtbl->EndPlaylistBurn(This,result) 10856 #else 10857 /*** IUnknown methods ***/ 10858 static FORCEINLINE HRESULT IWMReaderPlaylistBurn_QueryInterface(IWMReaderPlaylistBurn* This,REFIID riid,void **ppvObject) { 10859 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 10860 } 10861 static FORCEINLINE ULONG IWMReaderPlaylistBurn_AddRef(IWMReaderPlaylistBurn* This) { 10862 return This->lpVtbl->AddRef(This); 10863 } 10864 static FORCEINLINE ULONG IWMReaderPlaylistBurn_Release(IWMReaderPlaylistBurn* This) { 10865 return This->lpVtbl->Release(This); 10866 } 10867 /*** IWMReaderPlaylistBurn methods ***/ 10868 static FORCEINLINE HRESULT IWMReaderPlaylistBurn_InitPlaylistBurn(IWMReaderPlaylistBurn* This,DWORD count,LPCWSTR_WMSDK_TYPE_SAFE *filenames,IWMStatusCallback *callback,void *context) { 10869 return This->lpVtbl->InitPlaylistBurn(This,count,filenames,callback,context); 10870 } 10871 static FORCEINLINE HRESULT IWMReaderPlaylistBurn_GetInitResults(IWMReaderPlaylistBurn* This,DWORD count,HRESULT *stat) { 10872 return This->lpVtbl->GetInitResults(This,count,stat); 10873 } 10874 static FORCEINLINE HRESULT IWMReaderPlaylistBurn_Cancel(IWMReaderPlaylistBurn* This) { 10875 return This->lpVtbl->Cancel(This); 10876 } 10877 static FORCEINLINE HRESULT IWMReaderPlaylistBurn_EndPlaylistBurn(IWMReaderPlaylistBurn* This,HRESULT result) { 10878 return This->lpVtbl->EndPlaylistBurn(This,result); 10879 } 10880 #endif 10881 #endif 10882 10883 #endif 10884 10885 10886 #endif /* __IWMReaderPlaylistBurn_INTERFACE_DEFINED__ */ 10887 10888 /***************************************************************************** 10889 * IWMPropertyVault interface 10890 */ 10891 #ifndef __IWMPropertyVault_INTERFACE_DEFINED__ 10892 #define __IWMPropertyVault_INTERFACE_DEFINED__ 10893 10894 DEFINE_GUID(IID_IWMPropertyVault, 0x72995a79, 0x5090, 0x42a4, 0x9c,0x8c, 0xd9,0xd0,0xb6,0xd3,0x4b,0xe5); 10895 #if defined(__cplusplus) && !defined(CINTERFACE) 10896 MIDL_INTERFACE("72995a79-5090-42a4-9c8c-d9d0b6d34be5") 10897 IWMPropertyVault : public IUnknown 10898 { 10899 virtual HRESULT STDMETHODCALLTYPE GetPropertyCount( 10900 DWORD *count) = 0; 10901 10902 virtual HRESULT STDMETHODCALLTYPE GetPropertyByName( 10903 const WCHAR *name, 10904 WMT_ATTR_DATATYPE *type, 10905 BYTE *value, 10906 DWORD *size) = 0; 10907 10908 virtual HRESULT STDMETHODCALLTYPE SetProperty( 10909 const WCHAR *name, 10910 WMT_ATTR_DATATYPE type, 10911 BYTE *value, 10912 DWORD size) = 0; 10913 10914 virtual HRESULT STDMETHODCALLTYPE GetPropertyByIndex( 10915 DWORD index, 10916 WCHAR *name, 10917 DWORD *length, 10918 WMT_ATTR_DATATYPE *type, 10919 BYTE *value, 10920 DWORD *size) = 0; 10921 10922 virtual HRESULT STDMETHODCALLTYPE CopyPropertiesFrom( 10923 IWMPropertyVault *vault) = 0; 10924 10925 virtual HRESULT STDMETHODCALLTYPE Clear( 10926 ) = 0; 10927 10928 }; 10929 #ifdef __CRT_UUID_DECL 10930 __CRT_UUID_DECL(IWMPropertyVault, 0x72995a79, 0x5090, 0x42a4, 0x9c,0x8c, 0xd9,0xd0,0xb6,0xd3,0x4b,0xe5) 10931 #endif 10932 #else 10933 typedef struct IWMPropertyVaultVtbl { 10934 BEGIN_INTERFACE 10935 10936 /*** IUnknown methods ***/ 10937 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 10938 IWMPropertyVault *This, 10939 REFIID riid, 10940 void **ppvObject); 10941 10942 ULONG (STDMETHODCALLTYPE *AddRef)( 10943 IWMPropertyVault *This); 10944 10945 ULONG (STDMETHODCALLTYPE *Release)( 10946 IWMPropertyVault *This); 10947 10948 /*** IWMPropertyVault methods ***/ 10949 HRESULT (STDMETHODCALLTYPE *GetPropertyCount)( 10950 IWMPropertyVault *This, 10951 DWORD *count); 10952 10953 HRESULT (STDMETHODCALLTYPE *GetPropertyByName)( 10954 IWMPropertyVault *This, 10955 const WCHAR *name, 10956 WMT_ATTR_DATATYPE *type, 10957 BYTE *value, 10958 DWORD *size); 10959 10960 HRESULT (STDMETHODCALLTYPE *SetProperty)( 10961 IWMPropertyVault *This, 10962 const WCHAR *name, 10963 WMT_ATTR_DATATYPE type, 10964 BYTE *value, 10965 DWORD size); 10966 10967 HRESULT (STDMETHODCALLTYPE *GetPropertyByIndex)( 10968 IWMPropertyVault *This, 10969 DWORD index, 10970 WCHAR *name, 10971 DWORD *length, 10972 WMT_ATTR_DATATYPE *type, 10973 BYTE *value, 10974 DWORD *size); 10975 10976 HRESULT (STDMETHODCALLTYPE *CopyPropertiesFrom)( 10977 IWMPropertyVault *This, 10978 IWMPropertyVault *vault); 10979 10980 HRESULT (STDMETHODCALLTYPE *Clear)( 10981 IWMPropertyVault *This); 10982 10983 END_INTERFACE 10984 } IWMPropertyVaultVtbl; 10985 10986 interface IWMPropertyVault { 10987 CONST_VTBL IWMPropertyVaultVtbl* lpVtbl; 10988 }; 10989 10990 #ifdef COBJMACROS 10991 #ifndef WIDL_C_INLINE_WRAPPERS 10992 /*** IUnknown methods ***/ 10993 #define IWMPropertyVault_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 10994 #define IWMPropertyVault_AddRef(This) (This)->lpVtbl->AddRef(This) 10995 #define IWMPropertyVault_Release(This) (This)->lpVtbl->Release(This) 10996 /*** IWMPropertyVault methods ***/ 10997 #define IWMPropertyVault_GetPropertyCount(This,count) (This)->lpVtbl->GetPropertyCount(This,count) 10998 #define IWMPropertyVault_GetPropertyByName(This,name,type,value,size) (This)->lpVtbl->GetPropertyByName(This,name,type,value,size) 10999 #define IWMPropertyVault_SetProperty(This,name,type,value,size) (This)->lpVtbl->SetProperty(This,name,type,value,size) 11000 #define IWMPropertyVault_GetPropertyByIndex(This,index,name,length,type,value,size) (This)->lpVtbl->GetPropertyByIndex(This,index,name,length,type,value,size) 11001 #define IWMPropertyVault_CopyPropertiesFrom(This,vault) (This)->lpVtbl->CopyPropertiesFrom(This,vault) 11002 #define IWMPropertyVault_Clear(This) (This)->lpVtbl->Clear(This) 11003 #else 11004 /*** IUnknown methods ***/ 11005 static FORCEINLINE HRESULT IWMPropertyVault_QueryInterface(IWMPropertyVault* This,REFIID riid,void **ppvObject) { 11006 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 11007 } 11008 static FORCEINLINE ULONG IWMPropertyVault_AddRef(IWMPropertyVault* This) { 11009 return This->lpVtbl->AddRef(This); 11010 } 11011 static FORCEINLINE ULONG IWMPropertyVault_Release(IWMPropertyVault* This) { 11012 return This->lpVtbl->Release(This); 11013 } 11014 /*** IWMPropertyVault methods ***/ 11015 static FORCEINLINE HRESULT IWMPropertyVault_GetPropertyCount(IWMPropertyVault* This,DWORD *count) { 11016 return This->lpVtbl->GetPropertyCount(This,count); 11017 } 11018 static FORCEINLINE HRESULT IWMPropertyVault_GetPropertyByName(IWMPropertyVault* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) { 11019 return This->lpVtbl->GetPropertyByName(This,name,type,value,size); 11020 } 11021 static FORCEINLINE HRESULT IWMPropertyVault_SetProperty(IWMPropertyVault* This,const WCHAR *name,WMT_ATTR_DATATYPE type,BYTE *value,DWORD size) { 11022 return This->lpVtbl->SetProperty(This,name,type,value,size); 11023 } 11024 static FORCEINLINE HRESULT IWMPropertyVault_GetPropertyByIndex(IWMPropertyVault* This,DWORD index,WCHAR *name,DWORD *length,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) { 11025 return This->lpVtbl->GetPropertyByIndex(This,index,name,length,type,value,size); 11026 } 11027 static FORCEINLINE HRESULT IWMPropertyVault_CopyPropertiesFrom(IWMPropertyVault* This,IWMPropertyVault *vault) { 11028 return This->lpVtbl->CopyPropertiesFrom(This,vault); 11029 } 11030 static FORCEINLINE HRESULT IWMPropertyVault_Clear(IWMPropertyVault* This) { 11031 return This->lpVtbl->Clear(This); 11032 } 11033 #endif 11034 #endif 11035 11036 #endif 11037 11038 11039 #endif /* __IWMPropertyVault_INTERFACE_DEFINED__ */ 11040 11041 /***************************************************************************** 11042 * IWMWriterPreprocess interface 11043 */ 11044 #ifndef __IWMWriterPreprocess_INTERFACE_DEFINED__ 11045 #define __IWMWriterPreprocess_INTERFACE_DEFINED__ 11046 11047 DEFINE_GUID(IID_IWMWriterPreprocess, 0xfc54a285, 0x38c4, 0x45b5, 0xaa,0x23, 0x85,0xb9,0xf7,0xcb,0x42,0x4b); 11048 #if defined(__cplusplus) && !defined(CINTERFACE) 11049 MIDL_INTERFACE("fc54a285-38c4-45b5-aa23-85b9f7cb424b") 11050 IWMWriterPreprocess : public IUnknown 11051 { 11052 virtual HRESULT STDMETHODCALLTYPE GetMaxPreprocessingPasses( 11053 DWORD input, 11054 DWORD flags, 11055 DWORD *passes) = 0; 11056 11057 virtual HRESULT STDMETHODCALLTYPE SetNumPreprocessingPasses( 11058 DWORD input, 11059 DWORD flags, 11060 DWORD passes) = 0; 11061 11062 virtual HRESULT STDMETHODCALLTYPE BeginPreprocessingPass( 11063 DWORD input, 11064 DWORD flags) = 0; 11065 11066 virtual HRESULT STDMETHODCALLTYPE PreprocessSample( 11067 DWORD input, 11068 QWORD sample_time, 11069 DWORD flags, 11070 INSSBuffer *sample) = 0; 11071 11072 virtual HRESULT STDMETHODCALLTYPE EndPreprocessingPass( 11073 DWORD input, 11074 DWORD flags) = 0; 11075 11076 }; 11077 #ifdef __CRT_UUID_DECL 11078 __CRT_UUID_DECL(IWMWriterPreprocess, 0xfc54a285, 0x38c4, 0x45b5, 0xaa,0x23, 0x85,0xb9,0xf7,0xcb,0x42,0x4b) 11079 #endif 11080 #else 11081 typedef struct IWMWriterPreprocessVtbl { 11082 BEGIN_INTERFACE 11083 11084 /*** IUnknown methods ***/ 11085 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 11086 IWMWriterPreprocess *This, 11087 REFIID riid, 11088 void **ppvObject); 11089 11090 ULONG (STDMETHODCALLTYPE *AddRef)( 11091 IWMWriterPreprocess *This); 11092 11093 ULONG (STDMETHODCALLTYPE *Release)( 11094 IWMWriterPreprocess *This); 11095 11096 /*** IWMWriterPreprocess methods ***/ 11097 HRESULT (STDMETHODCALLTYPE *GetMaxPreprocessingPasses)( 11098 IWMWriterPreprocess *This, 11099 DWORD input, 11100 DWORD flags, 11101 DWORD *passes); 11102 11103 HRESULT (STDMETHODCALLTYPE *SetNumPreprocessingPasses)( 11104 IWMWriterPreprocess *This, 11105 DWORD input, 11106 DWORD flags, 11107 DWORD passes); 11108 11109 HRESULT (STDMETHODCALLTYPE *BeginPreprocessingPass)( 11110 IWMWriterPreprocess *This, 11111 DWORD input, 11112 DWORD flags); 11113 11114 HRESULT (STDMETHODCALLTYPE *PreprocessSample)( 11115 IWMWriterPreprocess *This, 11116 DWORD input, 11117 QWORD sample_time, 11118 DWORD flags, 11119 INSSBuffer *sample); 11120 11121 HRESULT (STDMETHODCALLTYPE *EndPreprocessingPass)( 11122 IWMWriterPreprocess *This, 11123 DWORD input, 11124 DWORD flags); 11125 11126 END_INTERFACE 11127 } IWMWriterPreprocessVtbl; 11128 11129 interface IWMWriterPreprocess { 11130 CONST_VTBL IWMWriterPreprocessVtbl* lpVtbl; 11131 }; 11132 11133 #ifdef COBJMACROS 11134 #ifndef WIDL_C_INLINE_WRAPPERS 11135 /*** IUnknown methods ***/ 11136 #define IWMWriterPreprocess_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 11137 #define IWMWriterPreprocess_AddRef(This) (This)->lpVtbl->AddRef(This) 11138 #define IWMWriterPreprocess_Release(This) (This)->lpVtbl->Release(This) 11139 /*** IWMWriterPreprocess methods ***/ 11140 #define IWMWriterPreprocess_GetMaxPreprocessingPasses(This,input,flags,passes) (This)->lpVtbl->GetMaxPreprocessingPasses(This,input,flags,passes) 11141 #define IWMWriterPreprocess_SetNumPreprocessingPasses(This,input,flags,passes) (This)->lpVtbl->SetNumPreprocessingPasses(This,input,flags,passes) 11142 #define IWMWriterPreprocess_BeginPreprocessingPass(This,input,flags) (This)->lpVtbl->BeginPreprocessingPass(This,input,flags) 11143 #define IWMWriterPreprocess_PreprocessSample(This,input,sample_time,flags,sample) (This)->lpVtbl->PreprocessSample(This,input,sample_time,flags,sample) 11144 #define IWMWriterPreprocess_EndPreprocessingPass(This,input,flags) (This)->lpVtbl->EndPreprocessingPass(This,input,flags) 11145 #else 11146 /*** IUnknown methods ***/ 11147 static FORCEINLINE HRESULT IWMWriterPreprocess_QueryInterface(IWMWriterPreprocess* This,REFIID riid,void **ppvObject) { 11148 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 11149 } 11150 static FORCEINLINE ULONG IWMWriterPreprocess_AddRef(IWMWriterPreprocess* This) { 11151 return This->lpVtbl->AddRef(This); 11152 } 11153 static FORCEINLINE ULONG IWMWriterPreprocess_Release(IWMWriterPreprocess* This) { 11154 return This->lpVtbl->Release(This); 11155 } 11156 /*** IWMWriterPreprocess methods ***/ 11157 static FORCEINLINE HRESULT IWMWriterPreprocess_GetMaxPreprocessingPasses(IWMWriterPreprocess* This,DWORD input,DWORD flags,DWORD *passes) { 11158 return This->lpVtbl->GetMaxPreprocessingPasses(This,input,flags,passes); 11159 } 11160 static FORCEINLINE HRESULT IWMWriterPreprocess_SetNumPreprocessingPasses(IWMWriterPreprocess* This,DWORD input,DWORD flags,DWORD passes) { 11161 return This->lpVtbl->SetNumPreprocessingPasses(This,input,flags,passes); 11162 } 11163 static FORCEINLINE HRESULT IWMWriterPreprocess_BeginPreprocessingPass(IWMWriterPreprocess* This,DWORD input,DWORD flags) { 11164 return This->lpVtbl->BeginPreprocessingPass(This,input,flags); 11165 } 11166 static FORCEINLINE HRESULT IWMWriterPreprocess_PreprocessSample(IWMWriterPreprocess* This,DWORD input,QWORD sample_time,DWORD flags,INSSBuffer *sample) { 11167 return This->lpVtbl->PreprocessSample(This,input,sample_time,flags,sample); 11168 } 11169 static FORCEINLINE HRESULT IWMWriterPreprocess_EndPreprocessingPass(IWMWriterPreprocess* This,DWORD input,DWORD flags) { 11170 return This->lpVtbl->EndPreprocessingPass(This,input,flags); 11171 } 11172 #endif 11173 #endif 11174 11175 #endif 11176 11177 11178 #endif /* __IWMWriterPreprocess_INTERFACE_DEFINED__ */ 11179 11180 HRESULT WINAPI WMCreateWriter(IUnknown*,IWMWriter**); 11181 HRESULT WINAPI WMCreateReader(IUnknown*,DWORD,IWMReader**); 11182 EXTERN_GUID(WMMEDIASUBTYPE_Base, 0x00000000,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11183 EXTERN_GUID(WMMEDIATYPE_Video, 0x73646976,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11184 EXTERN_GUID(WMMEDIASUBTYPE_RGB1, 0xe436eb78,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); 11185 EXTERN_GUID(WMMEDIASUBTYPE_RGB4, 0xe436eb79,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); 11186 EXTERN_GUID(WMMEDIASUBTYPE_RGB8, 0xe436eb7a,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); 11187 EXTERN_GUID(WMMEDIASUBTYPE_RGB565, 0xe436eb7b,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); 11188 EXTERN_GUID(WMMEDIASUBTYPE_RGB555, 0xe436eb7c,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); 11189 EXTERN_GUID(WMMEDIASUBTYPE_RGB24, 0xe436eb7d,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); 11190 EXTERN_GUID(WMMEDIASUBTYPE_RGB32, 0xe436eb7e,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); 11191 EXTERN_GUID(WMMEDIASUBTYPE_I420, 0x30323449,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11192 EXTERN_GUID(WMMEDIASUBTYPE_IYUV, 0x56555949,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11193 EXTERN_GUID(WMMEDIASUBTYPE_YV12, 0x32315659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11194 EXTERN_GUID(WMMEDIASUBTYPE_YUY2, 0x32595559,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11195 EXTERN_GUID(WMMEDIASUBTYPE_P422, 0x32323450,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11196 EXTERN_GUID(WMMEDIASUBTYPE_UYVY, 0x59565955,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11197 EXTERN_GUID(WMMEDIASUBTYPE_YVYU, 0x55595659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11198 EXTERN_GUID(WMMEDIASUBTYPE_YVU9, 0x39555659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11199 EXTERN_GUID(WMMEDIASUBTYPE_VIDEOIMAGE, 0x1d4a45f2,0xe5f6,0x4b44,0x83,0x88,0xf0,0xae,0x5c,0x0e,0x0c,0x37); 11200 EXTERN_GUID(WMMEDIASUBTYPE_MP43, 0x3334504d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11201 EXTERN_GUID(WMMEDIASUBTYPE_MP4S, 0x5334504d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11202 EXTERN_GUID(WMMEDIASUBTYPE_M4S2, 0x3253344d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11203 EXTERN_GUID(WMMEDIASUBTYPE_WMV1, 0x31564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11204 EXTERN_GUID(WMMEDIASUBTYPE_WMV2, 0x32564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11205 EXTERN_GUID(WMMEDIASUBTYPE_MSS1, 0x3153534d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11206 EXTERN_GUID(WMMEDIASUBTYPE_MPEG2_VIDEO, 0xe06d8026,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea); 11207 EXTERN_GUID(WMMEDIATYPE_Audio, 0x73647561,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11208 EXTERN_GUID(WMMEDIASUBTYPE_PCM, 0x00000001,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11209 EXTERN_GUID(WMMEDIASUBTYPE_DRM, 0x00000009,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11210 EXTERN_GUID(WMMEDIASUBTYPE_WMAudioV9, 0x00000162,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11211 EXTERN_GUID(WMMEDIASUBTYPE_WMAudio_Lossless, 0x00000163,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11212 EXTERN_GUID(WMMEDIASUBTYPE_MSS2, 0x3253534d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11213 EXTERN_GUID(WMMEDIASUBTYPE_WMSP1, 0x0000000a,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11214 EXTERN_GUID(WMMEDIASUBTYPE_WMSP2, 0x0000000b,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11215 EXTERN_GUID(WMMEDIASUBTYPE_WMV3, 0x33564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11216 EXTERN_GUID(WMMEDIASUBTYPE_WMVP, 0x50564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11217 EXTERN_GUID(WMMEDIASUBTYPE_WVP2, 0x32505657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11218 EXTERN_GUID(WMMEDIASUBTYPE_WMVA, 0x41564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11219 EXTERN_GUID(WMMEDIASUBTYPE_WVC1, 0x31435657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); 11220 /* Begin additional prototypes for all interfaces */ 11221 11222 11223 /* End additional prototypes */ 11224 11225 #ifdef __cplusplus 11226 } 11227 #endif 11228 11229 #endif /* __wmsdkidl_h__ */ 11230