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