/*
* Copyright 2008 James Hawkins
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Oracle elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
import "objidl.idl";
interface IAssemblyCache;
interface IAssemblyCacheItem;
interface IAssemblyEnum;
interface IAssemblyName;
typedef enum
{
ASM_CACHE_ZAP = 0x1,
ASM_CACHE_GAC = 0x2,
ASM_CACHE_DOWNLOAD = 0x4,
ASM_CACHE_ROOT = 0x8
typedef enum
{
peNone = 0x00000000,
peMSIL = 0x00000001,
peI386 = 0x00000002,
peIA64 = 0x00000003,
peAMD64 = 0x00000004,
peInvalid = 0xffffffff
} PEKIND;
{
[
]
interface IAssemblyCache : IUnknown
{
{
{
cpp_quote("#define IASSEMBLYCACHE_INSTALL_FLAG_REFRESH 0x00000001")
cpp_quote("#define IASSEMBLYCACHE_INSTALL_FLAG_FORCE_REFRESH 0x00000002")
cpp_quote("#define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_UNINSTALLED 1")
cpp_quote("#define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_STILL_IN_USE 2")
cpp_quote("#define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_ALREADY_UNINSTALLED 3")
cpp_quote("#define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_DELETE_PENDING 4")
cpp_quote("#define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_HAS_INSTALL_REFERENCES 5")
cpp_quote("#define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_REFERENCE_NOT_FOUND 6")
cpp_quote("#define QUERYASMINFO_FLAG_VALIDATE 0x00000001")
cpp_quote("#define QUERYASMINFO_FLAG_GETSIZE 0x00000002")
cpp_quote("#define ASSEMBLYINFO_FLAG_INSTALLED 0x00000001")
cpp_quote("#define ASSEMBLYINFO_FLAG_PAYLOADRESIDENT 0x00000002")
}
[
]
interface IAssemblyCacheItem : IUnknown
{
cpp_quote("#define STREAM_FORMAT_COMPLIB_MODULE 0")
cpp_quote("#define STREAM_FORMAT_COMPLIB_MANIFEST 1")
cpp_quote("#define STREAM_FORMAT_WIN32_MODULE 2")
cpp_quote("#define STREAM_FORMAT_WIN32_MANIFEST 4")
cpp_quote("#define IASSEMBLYCACHEITEM_COMMIT_FLAG_REFRESH 0x00000001")
cpp_quote("#define IASSEMBLYCACHEITEM_COMMIT_FLAG_FORCE_REFRESH 0x00000002")
cpp_quote("#define IASSEMBLYCACHEITEM_COMMIT_DISPOSITION_INSTALLED 1")
cpp_quote("#define IASSEMBLYCACHEITEM_COMMIT_DISPOSITION_REFRESHED 2")
cpp_quote("#define IASSEMBLYCACHEITEM_COMMIT_DISPOSITION_ALREADY_INSTALLED 3")
}
[
]
interface IAssemblyName: IUnknown
{
typedef enum
{
CANOF_PARSE_DISPLAY_NAME = 0x1,
CANOF_SET_DEFAULT_VALUES = 0x2,
typedef enum
{
ASM_NAME_PUBLIC_KEY = 0,
} ASM_NAME;
typedef enum
{
ASM_DISPLAYF_VERSION = 0x1,
ASM_DISPLAYF_CULTURE = 0x2,
ASM_DISPLAYF_PUBLIC_KEY = 0x8,
ASM_DISPLAYF_CUSTOM = 0x10,
ASM_DISPLAYF_LANGUAGEID = 0x40,
ASM_DISPLAYF_RETARGET = 0x80,
ASM_DISPLAYF_CONFIG_MASK = 0x100,
ASM_DISPLAYF_MVID = 0x200,
typedef enum
{
ASM_CMPF_NAME = 0x1,
ASM_CMPF_MAJOR_VERSION = 0x2,
ASM_CMPF_MINOR_VERSION = 0x4,
ASM_CMPF_BUILD_NUMBER = 0x8,
ASM_CMPF_REVISION_NUMBER = 0x10,
ASM_CMPF_PUBLIC_KEY_TOKEN = 0x20,
ASM_CMPF_CULTURE = 0x40,
ASM_CMPF_CUSTOM = 0x80,
ASM_CMPF_DEFAULT = 0x100,
ASM_CMPF_RETARGET = 0x200,
ASM_CMPF_ARCHITECTURE = 0x400,
ASM_CMPF_CONFIG_MASK = 0x800,
ASM_CMPF_MVID = 0x1000,
ASM_CMPF_SIGNATURE = 0x2000,
}
[
]
interface IAssemblyEnum : IUnknown
{
}
[
]
interface IInstallReferenceItem : IUnknown
{
}
[
]
interface IInstallReferenceEnum : IUnknown
{
}
cpp_quote("HRESULT WINAPI ClearDownloadCache(void);")
cpp_quote("HRESULT WINAPI CompareAssemblyIdentity(LPCWSTR,BOOL,LPCWSTR,BOOL,BOOL*,AssemblyComparisonResult*);")
cpp_quote("HRESULT WINAPI CreateAssemblyCache(IAssemblyCache**,DWORD);")
cpp_quote("HRESULT WINAPI CreateAssemblyEnum(IAssemblyEnum**,IUnknown*,IAssemblyName*,DWORD,LPVOID);")
cpp_quote("HRESULT WINAPI CreateAssemblyNameObject(LPASSEMBLYNAME*,LPCWSTR,DWORD,LPVOID);")
cpp_quote("HRESULT WINAPI CreateInstallReferenceEnum(IInstallReferenceEnum**,IAssemblyName*,DWORD,LPVOID);")
cpp_quote("HRESULT WINAPI GetAssemblyIdentityFromFile(LPCWSTR,REFIID,IUnknown**);")
cpp_quote("HRESULT WINAPI GetCachePath(ASM_CACHE_FLAGS,LPWSTR,PDWORD);")