mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
404 lines
12 KiB
404 lines
12 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992-2001.
|
|
//
|
|
// File: fusenet.idl
|
|
//
|
|
// Contents: Fusion Installer Interfaces
|
|
//
|
|
// Classes:
|
|
//
|
|
// Functions:
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("//=--------------------------------------------------------------------------=")
|
|
cpp_quote("// fusenet.h")
|
|
cpp_quote("//=--------------------------------------------------------------------------=")
|
|
cpp_quote("// (C) Copyright 1995-2001 Microsoft Corporation. All Rights Reserved.")
|
|
cpp_quote("//")
|
|
cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
|
|
cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
|
|
cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
|
|
cpp_quote("// PARTICULAR PURPOSE.")
|
|
cpp_quote("//=--------------------------------------------------------------------------=")
|
|
cpp_quote("")
|
|
cpp_quote("#pragma comment(lib,\"uuid.lib\")")
|
|
cpp_quote("")
|
|
cpp_quote("//---------------------------------------------------------------------------=")
|
|
cpp_quote("// Fusenet Interfaces.")
|
|
cpp_quote("")
|
|
|
|
import "objidl.idl";
|
|
import "oleidl.idl";
|
|
//import "bgcopy.idl";
|
|
import "bits.idl";
|
|
|
|
interface IAssemblyIdentity;
|
|
interface IAssemblyManifestImport;
|
|
interface IAssemblyCacheImport;
|
|
interface IAssemblyCacheEmit;
|
|
interface IAssemblyDownload;
|
|
|
|
cpp_quote("EXTERN_C const IID IID_IAssemblyFileInfo;")
|
|
cpp_quote("EXTERN_C const IID IID_IAssemblyIdentity;")
|
|
cpp_quote("EXTERN_C const IID IID_IAssemblyManifestImport;")
|
|
cpp_quote("EXTERN_C const IID IID_IAssemblyCacheImport;")
|
|
cpp_quote("EXTERN_C const IID IID_IAssemblyCacheEmit;")
|
|
cpp_quote("EXTERN_C const IID IID_IAssemblyDownload;")
|
|
cpp_quote("EXTERN_C const IID IID_IManifestApplicationInfo;")
|
|
cpp_quote("EXTERN_C const IID IID_IDependentAssemblyInfo;")
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// IAssemblyFileInfo
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
[
|
|
local,
|
|
object,
|
|
uuid(66f171ea-bd29-4936-b391-4225c6d7361a),
|
|
pointer_default(unique)
|
|
]
|
|
interface IAssemblyFileInfo: IUnknown
|
|
{
|
|
typedef [unique] IAssemblyFileInfo *LPASSEMBLY_FILE_INFO;
|
|
|
|
typedef enum
|
|
{
|
|
ASM_FILE_NAME = 0,
|
|
ASM_FILE_HASH,
|
|
ASM_FILE_SIZE,
|
|
ASM_FILE_MAX
|
|
} ASM_FILE;
|
|
|
|
|
|
HRESULT Set(
|
|
[in] DWORD dwPropertyId,
|
|
[in] LPCOLESTR pwzProperty);
|
|
|
|
HRESULT Get(
|
|
[in] DWORD dwPropertyId,
|
|
[out] LPOLESTR *ppwzProperty,
|
|
[out] LPDWORD pccProperty);
|
|
}
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// IAssemblyIdentity
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
[
|
|
local,
|
|
object,
|
|
uuid(aaa1257d-a56c-4383-9b4a-c868eda7ca42),
|
|
pointer_default(unique)
|
|
]
|
|
interface IAssemblyIdentity: IUnknown
|
|
{
|
|
typedef [unique] IAssemblyIdentity *LPASSEMBLY_IDENTITY;
|
|
|
|
typedef enum
|
|
{
|
|
ASMID_DISPLAYNAME_NOMANGLING= 0,
|
|
ASMID_DISPLAYNAME_WILDCARDED,
|
|
ASMID_DISPLAYNAME_MAX
|
|
} ASMID_DISPLAYNAME_FLAGS;
|
|
|
|
HRESULT SetAttribute(
|
|
[in] LPCOLESTR pwzName,
|
|
[in] LPCOLESTR pwzValue,
|
|
[in] DWORD ccValue);
|
|
|
|
HRESULT GetAttribute(
|
|
[in] LPCOLESTR pwzName,
|
|
[out] LPOLESTR *ppwzValue,
|
|
[out] LPDWORD pccValue);
|
|
|
|
HRESULT GetDisplayName(
|
|
[in] DWORD dwFlags,
|
|
[out] LPOLESTR *ppwzDisplayName,
|
|
[out] LPDWORD pccDisplayName);
|
|
|
|
HRESULT IsEqual(
|
|
[in] IAssemblyIdentity *pAssemblyId);
|
|
}
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// IManifestApplicationInfo
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
[
|
|
local,
|
|
object,
|
|
uuid(1367877f-be85-40ab-b16c-44b9c23b1819),
|
|
pointer_default(unique)
|
|
]
|
|
interface IManifestApplicationInfo: IUnknown
|
|
{
|
|
typedef [unique] IManifestApplicationInfo *LPMANIFEST_APPLICATION_INFO;
|
|
|
|
typedef enum
|
|
{
|
|
MAN_APPLICATION_FRIENDLYNAME= 0,
|
|
MAN_APPLICATION_ENTRYPOINT,
|
|
MAN_APPLICATION_ENTRYIMAGETYPE,
|
|
MAN_APPLICATION_ICONFILE,
|
|
MAN_APPLICATION_ICONINDEX,
|
|
MAN_APPLICATION_SHOWCOMMAND,
|
|
MAN_APPLICATION_HOTKEY,
|
|
MAN_APPLICATION_MAX
|
|
} MAN_APPLICATION;
|
|
|
|
HRESULT Set(
|
|
[in] DWORD dwPropertyId,
|
|
[in] LPCOLESTR pwzProperty);
|
|
|
|
HRESULT Get(
|
|
[in] DWORD dwPropertyId,
|
|
[out] LPOLESTR *ppwzProperty,
|
|
[out] LPDWORD pccProperty);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// IDependentAssemblyInfo
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
[
|
|
local,
|
|
object,
|
|
uuid(c9629878-461a-451b-a032-eaca1cb5383a),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDependentAssemblyInfo: IUnknown
|
|
{
|
|
typedef [unique] IDependentAssemblyInfo *LPDEPENDENT_ASSEMBLY_INFO;
|
|
|
|
typedef enum
|
|
{
|
|
DEPENDENT_ASM_CODEBASE= 0,
|
|
DEPENDENT_ASM_MAX
|
|
} DEPENDENT_ASM;
|
|
|
|
HRESULT SetAssemblyIdentity(
|
|
[in] LPASSEMBLY_IDENTITY pAssemblyId);
|
|
|
|
HRESULT GetAssemblyIdentity(
|
|
[out] LPASSEMBLY_IDENTITY *ppAssemblyId);
|
|
|
|
HRESULT Set(
|
|
[in] DWORD dwPropertyId,
|
|
[in] LPCOLESTR pwzProperty);
|
|
|
|
HRESULT Get(
|
|
[in] DWORD dwPropertyId,
|
|
[out] LPOLESTR *ppwzProperty,
|
|
[out] LPDWORD pccProperty);
|
|
|
|
|
|
}
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// IAssemblyManifestImport
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
[
|
|
local,
|
|
object,
|
|
uuid(696fb37f-da64-4175-94e7-fdc8234539c4),
|
|
pointer_default(unique)
|
|
]
|
|
interface IAssemblyManifestImport: IUnknown
|
|
{
|
|
typedef [unique] IAssemblyManifestImport *LPASSEMBLY_MANIFEST_IMPORT;
|
|
|
|
typedef enum
|
|
{
|
|
MANIFEST_TYPE_UNKNOWN= 0,
|
|
MANIFEST_TYPE_DESKTOP,
|
|
MANIFEST_TYPE_SUBSCRIPTION,
|
|
MANIFEST_TYPE_APPLICATION,
|
|
MANIFEST_TYPE_MAX
|
|
} MANIFEST_TYPE;
|
|
|
|
HRESULT GetAssemblyIdentity(
|
|
[out] IAssemblyIdentity **ppAssemblyId);
|
|
|
|
HRESULT GetManifestApplicationInfo(
|
|
[out] IManifestApplicationInfo **ppAppInfo);
|
|
|
|
HRESULT GetPollingInterval(
|
|
[out] DWORD *pollingInterval);
|
|
|
|
HRESULT GetNextFile(
|
|
[in] DWORD nIndex,
|
|
[out] IAssemblyFileInfo **ppAssemblyFile);
|
|
|
|
HRESULT QueryFile(
|
|
[in] LPCOLESTR pwzFileName,
|
|
[out] IAssemblyFileInfo **ppAssemblyFile);
|
|
|
|
HRESULT GetNextAssembly(
|
|
[in] DWORD nIndex,
|
|
[out] IDependentAssemblyInfo **ppDependAsm);
|
|
|
|
HRESULT GetNextPatchAssemblyId(
|
|
[in] DWORD nIndex,
|
|
[out] LPASSEMBLY_IDENTITY *ppAssemblyId);
|
|
|
|
HRESULT GetTargetPatchMapping(
|
|
[out] LPWSTR pwzTarget,
|
|
[out] LPWSTR *ppwzSource,
|
|
[out] LPWSTR *ppwzPatchFile);
|
|
|
|
HRESULT GetPatchFilePatchMapping(
|
|
[out] LPWSTR pwzPatchFile,
|
|
[out] LPWSTR *ppwzSource,
|
|
[out] LPWSTR *ppwzTarget);
|
|
|
|
HRESULT SetPatchAssemblyNode(
|
|
[in] DWORD nIndex);
|
|
|
|
HRESULT IsCABbed(
|
|
[out] LPWSTR *ppwzCabName);
|
|
|
|
HRESULT ReportManifestType(
|
|
[out] DWORD *pdwType);
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// IAssemblyCacheImport
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
[
|
|
local,
|
|
object,
|
|
uuid(c920b164-33e0-4c61-b595-eca4cdb04f12),
|
|
pointer_default(unique)
|
|
]
|
|
interface IAssemblyCacheImport: IUnknown
|
|
{
|
|
typedef [unique] IAssemblyCacheImport *LPASSEMBLY_CACHE_IMPORT;
|
|
|
|
typedef enum
|
|
{
|
|
CACHEIMP_CREATE_NULL= 0,
|
|
CACHEIMP_CREATE_RETRIEVE_EXIST,
|
|
CACHEIMP_CREATE_RETRIEVE_EXIST_COMPLETED,
|
|
CACHEIMP_CREATE_RETRIEVE_MAX_COMPLETED,
|
|
CACHEIMP_CREATE_RESOLVE_REF,
|
|
CACHEIMP_CREATE_RESOLVE_REF_EX,
|
|
CACHEIMP_CREATE_MAX,
|
|
} CACHEIMP_CREATE_FLAGS;
|
|
|
|
HRESULT GetManifestImport(
|
|
[out] IAssemblyManifestImport **ppManifestImport);
|
|
|
|
HRESULT GetManifestFilePath(
|
|
[out] LPOLESTR *ppwzFilePath,
|
|
[in, out] LPDWORD pccFilePath);
|
|
|
|
HRESULT GetManifestFileDir(
|
|
[out] LPOLESTR *ppwzFileDir,
|
|
[in, out] LPDWORD pccFileDir);
|
|
|
|
HRESULT GetDisplayName(
|
|
[out] LPOLESTR *ppwzDisplayName,
|
|
[in, out] LPDWORD pccDisplayName);
|
|
|
|
HRESULT FindExistMatching(
|
|
[in] LPASSEMBLY_FILE_INFO pAssemblyFileInfo,
|
|
[out] LPOLESTR *ppwzPath);
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// IAssemblyCacheEmit
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
[
|
|
local,
|
|
object,
|
|
uuid(83d6b9ac-eff9-45a3-8361-7c41df1f9f85),
|
|
pointer_default(unique)
|
|
]
|
|
interface IAssemblyCacheEmit: IUnknown
|
|
{
|
|
typedef [unique] IAssemblyCacheEmit *LPASSEMBLY_CACHE_EMIT;
|
|
|
|
HRESULT GetManifestImport(
|
|
[out] IAssemblyManifestImport **ppManifestImport);
|
|
|
|
HRESULT GetManifestFilePath(
|
|
[out] LPOLESTR *ppwzFilePath,
|
|
[in, out] LPDWORD pccFilePath);
|
|
|
|
HRESULT GetManifestFileDir(
|
|
[out] LPOLESTR *ppwzFilePath,
|
|
[in, out] LPDWORD pccFilePath);
|
|
|
|
HRESULT GetDisplayName(
|
|
[out] LPOLESTR *ppwzDisplayName,
|
|
[in, out] LPDWORD pccDisplayName);
|
|
|
|
HRESULT CopyFile(
|
|
[in] LPOLESTR pwzSourceFilePath,
|
|
[in] LPOLESTR pwzFileName,
|
|
[in] DWORD dwFlags);
|
|
|
|
HRESULT Commit(
|
|
[in] DWORD dwFlags);
|
|
}
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// IAssemblyDownload
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
[
|
|
local,
|
|
object,
|
|
uuid(8a249b36-6132-4238-8871-a267029382a8),
|
|
pointer_default(unique)
|
|
]
|
|
interface IAssemblyDownload: IBackgroundCopyCallback
|
|
{
|
|
typedef [unique] IAssemblyDownload *LPASSEMBLY_DOWNLOAD;
|
|
|
|
typedef enum
|
|
{
|
|
DOWNLOAD_FLAGS_NO_NOTIFICATION = 0x0,
|
|
DOWNLOAD_FLAGS_PROGRESS_UI = 0x1,
|
|
DOWNLOAD_FLAGS_NOTIFY_COMPLETION =0x2
|
|
} ASM_DOWNLOAD;
|
|
|
|
HRESULT DownloadManifestAndDependencies(
|
|
[in] LPWSTR pwzApplicationManifestUrl, HANDLE hNamedEvent, DWORD dwFlags);
|
|
|
|
}
|
|
|
|
|
|
#pragma midl_echo("STDAPI CreateAssemblyFileInfo(IAssemblyFileInfo** ppFile);")
|
|
#pragma midl_echo("STDAPI CreateAssemblyIdentity(LPASSEMBLY_IDENTITY *ppAssemblyId, DWORD dwFlags);")
|
|
#pragma midl_echo("STDAPI CreateAssemblyIdentityEx(LPASSEMBLY_IDENTITY *ppAssemblyId, DWORD dwFlags, LPWSTR wzDisplayName);")
|
|
#pragma midl_echo("STDAPI CloneAssemblyIdentity(LPASSEMBLY_IDENTITY pSrcAssemblyId, LPASSEMBLY_IDENTITY *ppDestAssemblyId);")
|
|
#pragma midl_echo("STDAPI CreateAssemblyManifestImport(LPASSEMBLY_MANIFEST_IMPORT *ppAssemblyManifestImport, LPCOLESTR szPath);")
|
|
#pragma midl_echo("STDAPI CreateAssemblyCacheImport(LPASSEMBLY_CACHE_IMPORT *ppAssemblyCacheImport, LPASSEMBLY_IDENTITY pAssemblyIdentity, DWORD dwFlags);")
|
|
#pragma midl_echo("STDAPI CreateAssemblyCacheEmit(LPASSEMBLY_CACHE_EMIT *ppAssemblyCacheEmit, LPASSEMBLY_CACHE_EMIT pAssemblyCacheEmit, DWORD dwFlags);")
|
|
#pragma midl_echo("STDAPI CreateAssemblyDownload(IAssemblyDownload** ppDownload);")
|
|
#pragma midl_echo("STDAPI CreateManifestApplicationInfo(LPMANIFEST_APPLICATION_INFO* ppManifestApplicationInfo);")
|
|
#pragma midl_echo("STDAPI CreateDependentAssemblyInfo(LPDEPENDENT_ASSEMBLY_INFO* ppDependentAssemblyInfo);")
|
|
|