' ########################################################################################
' Microsoft Windows
' File: wmscontext.inc
' Contents: Microsoft Windows Media Technologies
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_wmscontext_PBI)
#DEFINE PBX_wmscontext_PBI
%EQUATE `WMSCONTEXT_INC = 1
'/* header files for imported files */
#INCLUDE ONCE "Legacy/COM/OAIdl.inc"
'typedef unsigned __int64 QWORD;
$IID_IWMSContext = GUID$("{4F1A1421-5CD5-11D2-9F05-006097D2D7CF}")
$IID_IWMSCommandContext = GUID$("{75554931-5F0E-11D2-9F0E-006097D2D7CF}")
' WMS_CONTEXT_OPTIONS enum
%EQUATE `WMS_CONTEXT_SET_PROPERTY_NAME_BY_VALUE = &H1
%EQUATE `WMS_CONTEXT_SET_PROPERTY_STRING_BY_REFERENCE = &H2
%EQUATE `WMS_CONTEXT_GET_PROPERTY_STRING_BY_REFERENCE = &H4
' WMS_CONTEXT_HINT_CONSTANTS enum
%EQUATE `WMS_CONTEXT_NO_NAME_HINT = &HFFFFFFFF
' ########################################################################################
' Interface name = IWMSContext
' IID = {4F1A1421-5CD5-11D2-9F05-006097D2D7CF}
' Provides methods for managing a collection of properties for a particular context.
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWMSContext_INTERFACE_DEFINED)
 %IWMSContext_INTERFACE_DEFINED = 1
' WMS_CONTEXT_TYPE enum
%EQUATE `WMS_UNKNOWN_CONTEXT_TYPE = 0
%EQUATE `WMS_SERVER_CONTEXT_TYPE = %WMS_UNKNOWN_CONTEXT_TYPE + 1
%EQUATE `WMS_USER_CONTEXT_TYPE = %WMS_SERVER_CONTEXT_TYPE + 1
%EQUATE `WMS_PRESENTATION_CONTEXT_TYPE = %WMS_USER_CONTEXT_TYPE + 1
%EQUATE `WMS_CONTENT_DESCRIPTION_CONTEXT_TYPE = %WMS_PRESENTATION_CONTEXT_TYPE + 1
%EQUATE `WMS_COMMAND_REQUEST_CONTEXT_TYPE = %WMS_CONTENT_DESCRIPTION_CONTEXT_TYPE + 1
%EQUATE `WMS_COMMAND_RESPONSE_CONTEXT_TYPE = %WMS_COMMAND_REQUEST_CONTEXT_TYPE + 1
%EQUATE `WMS_TRANSPORT_SPEC_CONTEXT_TYPE = %WMS_COMMAND_RESPONSE_CONTEXT_TYPE + 1
%EQUATE `WMS_PACKETIZER_CONTEXT_TYPE = %WMS_TRANSPORT_SPEC_CONTEXT_TYPE + 1
%EQUATE `WMS_CACHE_CONTENT_INFORMATION_CONTEXT_TYPE = %WMS_PACKETIZER_CONTEXT_TYPE + 1
%EQUATE `WMS_ARCHIVE_CONTEXT_TYPE = %WMS_CACHE_CONTENT_INFORMATION_CONTEXT_TYPE + 1
%EQUATE `WMS_NUM_CONTEXT_TYPE = %WMS_ARCHIVE_CONTEXT_TYPE + 1
INTERFACE IWMSContext $IID_IWMSContext
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetLongValue ( ' VTable offset = 12
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYVAL lValue AS LONG
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetStringValue ( ' VTable offset = 16
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYREF pstrValue AS WSTRINGZ
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetIUnknownValue ( ' VTable offset = 20
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYVAL pValue AS IUnknown
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetQwordValue ( ' VTable offset = 24
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYVAL qwValue AS CUR
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetDateValue ( ' VTable offset = 28
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYVAL dateValue AS DOUBLE
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetArrayValue ( ' VTable offset = 32
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYVAL psaValue AS DWORD
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetLongValue ( ' VTable offset = 36
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYREF plValue AS LONG
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetStringValue ( ' VTable offset = 40
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYREF pstrValue AS DWORD
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetIUnknownValue ( ' VTable offset = 44
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYREF pValue AS IUnknown
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetQwordValue ( ' VTable offset = 48
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYREF pqwValue AS CUR
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetDateValue ( ' VTable offset = 52
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYREF pdateValue AS DOUBLE
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetArrayValue ( ' VTable offset = 56
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYREF ppsaValue AS DWORD
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetValue ( ' VTable offset = 60
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYVAL Value AS VARIANT
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetValue ( ' VTable offset = 64
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYREF pValue AS VARIANT
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetValueCount ( ' VTable offset = 68
 BYREF pCount AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetIndexedValue ( ' VTable offset = 72
 BYVAL lIndex AS LONG
 , BYREF pstrName AS DWORD
 , BYREF plNameHint AS LONG
 , BYREF pValue AS VARIANT
 , BYREF pdwResultOptions AS LONG
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD RemoveValue ( ' VTable offset = 76
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD RemoveAllValues ( ' VTable offset = 80
 ) AS LONG
 ' =====================================================================================
 METHOD GetContextType ( ' VTable offset = 84
 BYREF pType AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetAndQueryIUnknownValue ( ' VTable offset = 88
 BYREF pstrName AS WSTRINGZ
 , BYVAL lNameHint AS LONG
 , BYREF riid AS GUID
 , BYREF pResult AS IUnknown
 , BYVAL lOptions AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD CopyValues ( ' VTable offset = 92
 BYVAL pDest AS IWMSContext
 , BYREF pstrName AS WSTRINGZ
 , BYREF lNameHint AS LONG
 , BYVAL lNames AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWMSContext_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IWMSCommandContext
' IID = {75554931-5F0E-11D2-9F0E-006097D2D7CF}
' Provides methods for accessing and manipulating command request and command response contexts.
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IWMSCommandContext_INTERFACE_DEFINED)
 %IWMSCommandContext_INTERFACE_DEFINED = 1
INTERFACE IWMSCommandContext $IID_IWMSCommandContext
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetCommandRequest ( ' VTable offset = 12
 BYREF ppProps AS IWMSContext
 ) AS LONG
 ' =====================================================================================
 METHOD GetCommandResponse ( ' VTable offset = 16
 BYREF ppProps AS IWMSContext
 ) AS LONG
 ' =====================================================================================
 METHOD EraseCommandRequest ( ' VTable offset = 20
 ) AS LONG
 ' =====================================================================================
 METHOD EraseCommandResponse ( ' VTable offset = 24
 ) AS LONG
 ' =====================================================================================
 METHOD SetPlaylistGenerationId ( ' VTable offset = 28
 BYVAL dwId AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPlaylistGenerationId ( ' VTable offset = 32
 BYREF pdwId AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IWMSCommandContext_INTERFACE_DEFINED__ */
#ENDIF
