blob: 54a274587c1b12feb13323d5e474679eccf410aa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
//
// Utilities used to help manipulating typelibs
//
#ifndef _TLBUTILS_H
#define _TLBUTILS_H
#ifndef FEATURE_COMINTEROP_TLB_SUPPORT
#error FEATURE_COMINTEROP_TLB_SUPPORT is required for this file
#endif // FEATURE_COMINTEROP_TLB_SUPPORT
#include "windows.h"
#include "utilcode.h"
struct StdConvertibleItfInfo
{
LPUTF8 m_strMngTypeName;
GUID * m_pNativeTypeIID;
LPUTF8 m_strCustomMarshalerTypeName;
LPUTF8 m_strCookie;
};
// This method returns the custom marshaler info to convert the native interface
// to its managed equivalent. Or null if the interface is not a standard convertible interface.
const StdConvertibleItfInfo *GetConvertionInfoFromNativeIID(REFGUID rGuidNativeItf);
// This function determines the namespace name for a TypeLib.
HRESULT GetNamespaceNameForTypeLib( // S_OK or error.
ITypeLib *pITLB, // [IN] The TypeLib.
BSTR *pwzNamespace); // [OUT] Put the namespace name here.
// This function determines the namespace.name for a TypeInfo. If no namespace
// is provided, it is retrieved from the containing library.
HRESULT GetManagedNameForTypeInfo( // S_OK or error.
ITypeInfo *pITI, // [IN] The TypeInfo.
LPCWSTR wzNamespace, // [IN, OPTIONAL] Default namespace name.
LPCWSTR wzAsmName, // [IN, OPTIONAL] Assembly name.
BSTR *pwzName); // [OUT] Put the name here.
#endif // _TLBUTILS_H
|