' ########################################################################################
' Microsoft Windows
' File: isolation.inc
' 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_isolation_PBI)
#DEFINE PBX_isolation_PBI
%EQUATE `ISOLATION_INC = 1
'/* header files for imported files */
#INCLUDE ONCE "Legacy/COM/Unknwn.inc"
#INCLUDE ONCE "Legacy/COM/OAIdl.inc"
#INCLUDE ONCE "Legacy/COM/OCIdl.inc"
#INCLUDE ONCE "Legacy/System/PropIdl.inc"
' // Size = 12 bytes
TYPE IDENTITY_ATTRIBUTE DWORD
 pszNamespace AS WSTRINGZ PTR
 pszName AS WSTRINGZ PTR
 pszValue AS WSTRINGZ PTR
END TYPE
' ########################################################################################
' Interface name = IReferenceIdentity
' IID = 6EAF5ACE-7917-4F3C-B129-E046A9704766
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IReferenceIdentity_INTERFACE_DEFINED)
 %IReferenceIdentity_INTERFACE_DEFINED = 1
$IID_IReferenceIdentity = GUID$("{6EAF5ACE-7917-4F3C-B129-E046A9704766}")
INTERFACE IReferenceIdentity $IID_IReferenceIdentity
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetAttribute ( ' VTable offset = 12
 BYREF pszNamespace AS WSTRINGZ
 , BYREF pszName AS WSTRINGZ
 , BYREF ppszValue AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetAttribute ( ' VTable offset = 16
 BYREF pszNamespace AS WSTRINGZ
 , BYREF pszName AS WSTRINGZ
 , BYREF pszValue AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD EnumAttributes ( ' VTable offset = 20
 BYREF ppIEnumIDENTITY_ATTRIBUTE AS IEnumIDENTITY_ATTRIBUTE
 ) AS LONG
 ' =====================================================================================
 METHOD Clone ( ' VTable offset = 24
 BYVAL cDeltas AS DWORD
 , BYREF rgDeltas AS IDENTITY_ATTRIBUTE
 , BYREF ppIReferenceIdentity AS IReferenceIdentity
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IReferenceIdentity_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IDefinitionIdentity
' IID = 587BF538-4D90-4A3C-9EF1-58A200A8A9E7
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDefinitionIdentity_INTERFACE_DEFINED)
 %IDefinitionIdentity_INTERFACE_DEFINED = 1
$IID_IDefinitionIdentity = GUID$("{587BF538-4D90-4A3C-9EF1-58A200A8A9E7}")
INTERFACE IDefinitionIdentity $IID_IDefinitionIdentity
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetAttribute ( ' VTable offset = 12
 BYREF pszNamespace AS WSTRINGZ
 , BYREF pszName AS WSTRINGZ
 , BYREF ppszValue AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetAttribute ( ' VTable offset = 16
 BYREF pszNamespace AS WSTRINGZ
 , BYREF pszName AS WSTRINGZ
 , BYREF pszValue AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD EnumAttributes ( ' VTable offset = 20
 BYREF ppIEnumIDENTITY_ATTRIBUTE AS IEnumIDENTITY_ATTRIBUTE
 ) AS LONG
 ' =====================================================================================
 METHOD Clone ( ' VTable offset = 24
 BYVAL cDeltas AS DWORD
 , BYREF prgDeltas AS IDENTITY_ATTRIBUTE
 , BYREF ppIDefinitionIdentity AS IDefinitionIdentity
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDefinitionIdentity_INTERFACE_DEFINED__ */
' // Size = 12 bytes
TYPE IDENTITY_ATTRIBUTE_BLOB DWORD
 ofsNamespace AS DWORD
 ofsName AS DWORD
 ofsValue AS DWORD
END TYPE
' ########################################################################################
' Interface name = IEnumIDENTITY_ATTRIBUTE
' IID = 9CDAAE75-246E-4B00-A26D-B9AEC137A3EB
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IEnumIDENTITY_ATTRIBUTE_INTERFACE_DEFINED)
 %IEnumIDENTITY_ATTRIBUTE_INTERFACE_DEFINED = 1
$IID_IEnumIDENTITY_ATTRIBUTE = GUID$("{9CDAAE75-246E-4B00-A26D-B9AEC137A3EB}")
INTERFACE IEnumIDENTITY_ATTRIBUTE $IID_IEnumIDENTITY_ATTRIBUTE
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Next ( ' VTable offset = 12
 BYVAL celt AS DWORD
 , BYREF rgAttributes AS IDENTITY_ATTRIBUTE
 , BYREF pceltWritten AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CurrentIntoBuffer ( ' VTable offset = 16
 BYVAL cbAvailable AS DWORD
 , BYVAL pbData AS BYTE PTR
 , BYREF pcbUsed AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Skip ( ' VTable offset = 20
 BYVAL celt AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Reset ( ' VTable offset = 24
 ) AS LONG
 ' =====================================================================================
 METHOD Clone ( ' VTable offset = 28
 BYREF ppIEnumIDENTITY_ATTRIBUTE AS IEnumIDENTITY_ATTRIBUTE
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IEnumIDENTITY_ATTRIBUTE_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IEnumDefinitionIdentity
' IID = F3549D9C-FC73-4793-9C00-1CD204254C0C
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IEnumDefinitionIdentity_INTERFACE_DEFINED)
 %IEnumDefinitionIdentity_INTERFACE_DEFINED = 1
$IID_IEnumDefinitionIdentity = GUID$("{F3549D9C-FC73-4793-9C00-1CD204254C0C}")
INTERFACE IEnumDefinitionIdentity $IID_IEnumDefinitionIdentity
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Next ( ' VTable offset = 12
 BYVAL celt AS DWORD
 , BYREF rgpIDefinitionIdentity AS IDefinitionIdentity
 , BYREF pceltWritten AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Skip ( ' VTable offset = 16
 BYVAL celt AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Reset ( ' VTable offset = 20
 ) AS LONG
 ' =====================================================================================
 METHOD Clone ( ' VTable offset = 24
 BYREF ppIEnumDefinitionIdentity AS IEnumDefinitionIdentity
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IEnumDefinitionIdentity_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IEnumReferenceIdentity
' IID = B30352CF-23DA-4577-9B3F-B4E6573BE53B
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IEnumReferenceIdentity_INTERFACE_DEFINED)
 %IEnumReferenceIdentity_INTERFACE_DEFINED = 1
$IID_IEnumReferenceIdentity = GUID$("{B30352CF-23DA-4577-9B3F-B4E6573BE53B}")
INTERFACE IEnumReferenceIdentity $IID_IEnumReferenceIdentity
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Next ( ' VTable offset = 12
 BYVAL celt AS DWORD
 , BYREF prgpIReferenceIdentity AS IReferenceIdentity
 , BYREF pceltWritten AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Skip ( ' VTable offset = 16
 BYVAL celt AS DWORD ' ULONG celt
 ) AS LONG
 ' =====================================================================================
 METHOD Reset ( ' VTable offset = 20
 ) AS LONG
 ' =====================================================================================
 METHOD Clone ( ' VTable offset = 24
 BYREF ppIEnumReferenceIdentity AS IEnumReferenceIdentity ' IEnumReferenceIdentity **ppIEnumReferenceIdentity
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IEnumReferenceIdentity_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IDefinitionAppId
' IID = D91E12D8-98ED-47FA-9936-39421283D59B
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDefinitionAppId_INTERFACE_DEFINED)
 %IDefinitionAppId_INTERFACE_DEFINED = 1
$IID_IDefinitionAppId = GUID$("{D91E12D8-98ED-47FA-9936-39421283D59B}")
INTERFACE IDefinitionAppId $IID_IDefinitionAppId
 INHERIT IUnknown
 ' =====================================================================================
 METHOD get_SubscriptionId ( ' VTable offset = 12
 BYREF ppszSubscription AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD put_SubscriptionId ( ' VTable offset = 16
 BYREF pszSubscription AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD get_Codebase ( ' VTable offset = 20
 BYREF ppszCodebase AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD put_Codebase ( ' VTable offset = 24
 BYREF pszCodebase AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD EnumAppPath ( ' VTable offset = 28
 BYREF ppIEnumDefinitionIdentity AS IEnumDefinitionIdentity
 ) AS LONG
 ' =====================================================================================
 METHOD SetAppPath ( ' VTable offset = 32
 BYVAL cIDefinitionIdentity AS DWORD
 , BYREF rgIDefinitionIdentity AS IDefinitionIdentity
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDefinitionAppId_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IReferenceAppId
' IID = 054F0BEF-9E45-4363-8F5A-2F8E142D9A3B
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IReferenceAppId_INTERFACE_DEFINED)
 %IReferenceAppId_INTERFACE_DEFINED = 1
$IID_IReferenceAppId = GUID$("{054F0BEF-9E45-4363-8F5A-2F8E142D9A3B}")
INTERFACE IReferenceAppId $IID_IReferenceAppId
 INHERIT IUnknown
 ' =====================================================================================
 METHOD get_SubscriptionId ( ' VTable offset = 12
 BYREF ppszSubscription AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD put_SubscriptionId ( ' VTable offset = 16
 BYREF pszSubscription AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD get_Codebase ( ' VTable offset = 20
 BYREF ppszCodebase AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD put_Codebase ( ' VTable offset = 24
 BYREF pszCodebase AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD EnumAppPath ( ' VTable offset = 28
 BYREF ppIReferenceAppId AS IEnumReferenceIdentity
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IReferenceAppId_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IIdentityAuthority
' IID = 261A6983-C35D-4D0D-AA5B-7867259E77BC
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IIdentityAuthority_INTERFACE_DEFINED)
 %IIdentityAuthority_INTERFACE_DEFINED = 1
' enum _TEXT_TO_DEFINITION_IDENTITY_FLAGS
%EQUATE `TEXT_TO_DEFINITION_IDENTITY_FLAG_ALLOW_UNKNOWN_ATTRIBUTES_IN_NULL_NAMESPACE = &H1
' enum _TEXT_TO_REFERENCE_IDENTITY_FLAGS
%EQUATE `TEXT_TO_REFERENCE_IDENTITY_FLAG_ALLOW_UNKNOWN_ATTRIBUTES_IN_NULL_NAMESPACE = &H1
' enum _DEFINITION_IDENTITY_TO_TEXT_FLAGS
%EQUATE `DEFINITION_IDENTITY_TO_TEXT_FLAG_CANONICAL = &H1
' enum _REFERENCE_IDENTITY_TO_TEXT_FLAGS
%EQUATE `REFERENCE_IDENTITY_TO_TEXT_FLAG_CANONICAL = &H1
' enum _IIDENTITYAUTHORITY_DOES_DEFINITION_MATCH_REFERENCE_FLAGS
%EQUATE `IIDENTITYAUTHORITY_DOES_DEFINITION_MATCH_REFERENCE_FLAG_EXACT_MATCH_REQUIRED = &H1
' enum _IIDENTITYAUTHORITY_DOES_TEXTUAL_DEFINITION_MATCH_TEXTUAL_REFERENCE_FLAGS
%EQUATE `IIDENTITYAUTHORITY_DOES_TEXTUAL_DEFINITION_MATCH_TEXTUAL_REFERENCE_FLAG_EXACT_MATCH_REQUIRED = &H1
$IID_IIdentityAuthority = GUID$("{261A6983-C35D-4D0D-AA5B-7867259E77BC}")
INTERFACE IIdentityAuthority $IID_IIdentityAuthority
 INHERIT IUnknown
 ' =====================================================================================
 METHOD TextToDefinition ( ' VTable offset = 12
 BYVAL dwFlags AS DWORD
 , BYREF pszIdentity AS WSTRINGZ
 , BYREF ppIDefinitionIdentity AS IDefinitionIdentity
 ) AS LONG
 ' =====================================================================================
 METHOD TextToReference ( ' VTable offset = 16
 BYVAL dwFlags AS DWORD
 , BYREF pszIdentity AS WSTRINGZ
 , BYREF ppIReferenceIdentity AS IReferenceIdentity
 ) AS LONG
 ' =====================================================================================
 METHOD DefinitionToText ( ' VTable offset = 20
 BYVAL dwFlags AS DWORD
 , BYVAL pIDefinitionIdentity AS IDefinitionIdentity
 , BYREF ppszFormattedIdentity AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DefinitionToTextBuffer ( ' VTable offset = 24
 BYVAL dwFlags AS DWORD
 , BYVAL pIDefinitionIdentity AS IDefinitionIdentity
 , BYVAL cchBufferSize AS DWORD
 , BYREF wchBuffer AS WSTRINGZ
 , BYREF pcchBufferRequired AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ReferenceToText ( ' VTable offset = 28
 BYVAL dwFlags AS DWORD
 , BYVAL pIReferenceIdentity AS IReferenceIdentity
 , BYREF ppszFormattedIdentity AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ReferenceToTextBuffer ( ' VTable offset = 32
 BYVAL dwFlags AS DWORD
 , BYVAL pIReferenceIdentity AS IReferenceIdentity
 , BYVAL cchBufferSize AS DWORD
 , BYREF wchBuffer AS WSTRINGZ
 , BYREF pcchBufferRequired AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD AreDefinitionsEqual ( ' VTable offset = 36
 BYVAL dwFlags AS DWORD
 , BYVAL pDefinition1 AS IDefinitionIdentity
 , BYVAL pDefinition2 AS IDefinitionIdentity
 , BYREF LONG
 ) AS LONG
 ' =====================================================================================
 METHOD AreReferencesEqual ( ' VTable offset = 40
 BYVAL dwFlags AS DWORD
 , BYVAL pReference1 AS IReferenceIdentity
 , BYVAL pReference2 AS IReferenceIdentity
 , BYREF LONG
 ) AS LONG
 ' =====================================================================================
 METHOD AreTextualDefinitionsEqual ( ' VTable offset = 44
 BYVAL dwFlags AS DWORD
 , BYREF pszIdentityLeft AS WSTRINGZ
 , BYREF pszIdentityRight AS WSTRINGZ
 , BYREF pfEqual AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD AreTextualReferencesEqual ( ' VTable offset = 48
 BYVAL dwFlags AS DWORD
 , BYREF pszIdentityLeft AS WSTRINGZ
 , BYREF pszIdentityRight AS WSTRINGZ
 , BYREF pfEqual AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DoesDefinitionMatchReference ( ' VTable offset = 52
 BYVAL dwFlags AS DWORD
 , BYVAL pIDefinitionIdentity AS IDefinitionIdentity
 , BYVAL pIReferenceIdentity AS IReferenceIdentity
 , BYREF pfMatches AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DoesTextualDefinitionMatchTextualReference ( ' VTable offset = 56
 BYVAL dwFlags AS DWORD
 , BYREF pszDefinition AS WSTRINGZ
 , BYREF pszReference AS WSTRINGZ
 , BYREF pfMatches AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD HashReference ( ' VTable offset = 60
 BYVAL dwFlags AS DWORD
 , BYVAL pIReferenceIdentity AS IReferenceIdentity
 , BYREF pullPseudoKey AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD HashDefinition ( ' VTable offset = 64
 BYVAL dwFlags AS DWORD
 , BYVAL pIDefinitionIdentity AS IDefinitionIdentity
 , BYREF pullPseudoKey AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD GenerateDefinitionKey ( ' VTable offset = 68
 BYVAL dwFlags AS DWORD
 , BYVAL pIDefinitionIdentity AS IDefinitionIdentity
 , BYREF ppszKeyForm AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GenerateReferenceKey ( ' VTable offset = 72
 BYVAL dwFlags AS DWORD
 , BYVAL pIReferenceIdentity AS IReferenceIdentity
 , BYREF ppszKeyForm AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CreateDefinition ( ' VTable offset = 76
 BYREF ppNewIdentity AS IDefinitionIdentity
 ) AS LONG
 ' =====================================================================================
 METHOD CreateReference ( ' VTable offset = 80
 BYREF ppNewIdentity AS IDefinitionIdentity
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IIdentityAuthority_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IAppIdAuthority
' IID = 8C87810C-2541-4F75-B2D0-9AF515488E23
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IAppIdAuthority_INTERFACE_DEFINED)
 %IAppIdAuthority_INTERFACE_DEFINED = 1
' enum IAPPIDAUTHORITY_ARE_DEFINITIONS_EQUAL_FLAGS
%EQUATE `IAPPIDAUTHORITY_ARE_DEFINITIONS_EQUAL_FLAG_IGNORE_VERSION = &H1
' enum IAPPIDAUTHORITY_ARE_REFERENCES_EQUAL_FLAGS
%EQUATE `IAPPIDAUTHORITY_ARE_REFERENCES_EQUAL_FLAG_IGNORE_VERSION = &H1
$IID_IAppIdAuthority = GUID$("{8C87810C-2541-4F75-B2D0-9AF515488E23}")
INTERFACE IAppIdAuthority $IID_IAppIdAuthority
 INHERIT IUnknown
 ' =====================================================================================
 METHOD TextToDefinition ( ' VTable offset = 12
 BYVAL dwFlags AS DWORD
 , BYREF pszIdentity AS WSTRINGZ
 , BYREF ppIDefinitionAppId AS IDefinitionAppId
 ) AS LONG
 ' =====================================================================================
 METHOD TextToReference ( ' VTable offset = 16
 BYVAL dwFlags AS DWORD
 , BYREF pszIdentity AS WSTRINGZ
 , BYREF ppIReferenceAppId AS IReferenceAppId
 ) AS LONG
 ' =====================================================================================
 METHOD DefinitionToText ( ' VTable offset = 20
 BYVAL dwFlags AS DWORD
 , BYVAL pIDefinitionAppId AS IDefinitionAppId
 , BYREF ppszFormattedIdentity AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ReferenceToText ( ' VTable offset = 24
 BYVAL dwFlags AS DWORD
 , BYVAL pIReferenceAppId AS IReferenceAppId
 , BYREF ppszFormattedIdentity AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD AreDefinitionsEqual ( ' VTable offset = 28
 BYVAL dwFlags AS DWORD
 , BYVAL pDefinition1 AS IDefinitionAppId
 , BYVAL pDefinition2 AS IDefinitionAppId
 , BYREF LONG
 ) AS LONG
 ' =====================================================================================
 METHOD AreReferencesEqual ( ' VTable offset = 32
 BYVAL dwFlags AS DWORD
 , BYVAL pReference1 AS IReferenceAppId
 , BYVAL pReference2 AS IReferenceAppId
 , BYREF pfAreEqual AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD AreTextualDefinitionsEqual ( ' VTable offset = 36
 BYVAL dwFlags AS DWORD
 , BYREF pszAppIdLeft AS WSTRINGZ
 , BYREF pszAppIdRight AS WSTRINGZ
 , BYREF pfAreEqual AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD AreTextualReferencesEqual ( ' VTable offset = 40
 BYVAL dwFlags AS DWORD
 , BYREF pszAppIdLeft AS WSTRINGZ
 , BYREF pszAppIdRight AS WSTRINGZ
 , BYREF pfAreEqual AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DoesDefinitionMatchReference ( ' VTable offset = 44
 BYVAL dwFlags AS DWORD
 , BYVAL pIDefinitionIdentity AS IDefinitionAppId
 , BYVAL pIReferenceIdentity AS IReferenceAppId
 , BYREF pfMatches AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD DoesTextualDefinitionMatchTextualReference ( ' VTable offset = 48
 BYVAL dwFlags AS DWORD
 , BYREF pszDefinition AS WSTRINGZ
 , BYREF pszReference AS WSTRINGZ
 , BYREF pfMatches AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD HashReference ( ' VTable offset = 52
 BYVAL dwFlags AS DWORD
 , BYVAL pIReferenceIdentity AS IReferenceAppId
 , BYREF pullPseudoKey AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD HashDefinition ( ' VTable offset = 56
 BYVAL dwFlags AS DWORD
 , BYVAL pIDefinitionIdentity AS IDefinitionAppId
 , BYREF pullPseudoKey AS QUAD
 ) AS LONG
 ' =====================================================================================
 METHOD GenerateDefinitionKey ( ' VTable offset = 60
 BYVAL dwFlags AS DWORD
 , BYVAL pIDefinitionIdentity AS IDefinitionAppId
 , BYREF ppszKeyForm AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GenerateReferenceKey ( ' VTable offset = 64
 BYVAL dwFlags AS DWORD
 , BYVAL pIReferenceIdentity AS IReferenceAppId
 , BYREF ppszKeyForm AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CreateDefinition ( ' VTable offset = 68
 BYREF ppNewIdentity AS IDefinitionAppId
 ) AS LONG
 ' =====================================================================================
 METHOD CreateReference ( ' VTable offset = 72
 BYREF ppNewIdentity AS IDefinitionAppId
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IAppIdAuthority_INTERFACE_DEFINED__ */
' Not exported. Library: Library: mscorwks.dll
'/* [local] */ HRESULT __stdcall GetAppIdAuthority(
' Not exported. Library: Library: mscorwks.dll
'/* [local] */ HRESULT __stdcall GetIdentityAuthority(
#ENDIF
