Source code of Windows XP (NT5)
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

//+---------------------------------------------------------------------------
//
// 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);")