| /* |
| * Copyright 2010 Hans Leidekker for CodeWeavers |
| * |
| * This library is free software; you can redistribute it and/or |
| * 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 |
| */ |
| |
| import "objidl.idl"; |
| |
| interface IAssemblyCache; |
| interface IAssemblyCacheItem; |
| |
| typedef struct _FUSION_INSTALL_REFERENCE_ |
| { |
| DWORD cbSize; |
| DWORD dwFlags; |
| GUID guidScheme; |
| LPCWSTR szIdentifier; |
| LPCWSTR szNonCannonicalData; |
| } FUSION_INSTALL_REFERENCE, *LPFUSION_INSTALL_REFERENCE; |
| |
| typedef struct _ASSEMBLY_INFO |
| { |
| ULONG cbAssemblyInfo; |
| DWORD dwAssemblyFlags; |
| ULARGE_INTEGER uliAssemblySizeInKB; |
| LPWSTR pszCurrentAssemblyPathBuf; |
| ULONG cchBuf; |
| } ASSEMBLY_INFO; |
| |
| typedef const struct _FUSION_INSTALL_REFERENCE_ *LPCFUSION_INSTALL_REFERENCE; |
| |
| [ |
| object, |
| uuid(e707dcde-d1cd-11d2-bab9-00c04f8eceae), |
| pointer_default(unique), |
| local |
| ] |
| interface IAssemblyCache : IUnknown |
| { |
| HRESULT UninstallAssembly( |
| [in] DWORD flags, |
| [in] LPCWSTR name, |
| [in] LPCFUSION_INSTALL_REFERENCE ref, |
| [out, optional] ULONG *disp); |
| |
| HRESULT QueryAssemblyInfo( |
| [in] DWORD flags, |
| [in] LPCWSTR name, |
| [in, out] ASSEMBLY_INFO *info); |
| |
| HRESULT CreateAssemblyCacheItem( |
| [in] DWORD flags, |
| [in] PVOID reserved, |
| [out] IAssemblyCacheItem **item, |
| [in, optional] LPCWSTR name); |
| |
| HRESULT Reserved( |
| [out] IUnknown **reserved); |
| |
| HRESULT InstallAssembly( |
| [in] DWORD flags, |
| [in] LPCWSTR path, |
| [in] LPCFUSION_INSTALL_REFERENCE ref); |
| } |
| |
| [ |
| object, |
| uuid(9e3aaeb4-d1cd-11d2-bab9-00c04f8eceae), |
| pointer_default(unique), |
| local |
| ] |
| interface IAssemblyCacheItem : IUnknown |
| { |
| HRESULT CreateStream( |
| [in] DWORD flags, |
| [in] LPCWSTR name, |
| [in] DWORD format, |
| [in] DWORD format_flags, |
| [out] IStream **stream, |
| [in, optional] ULARGE_INTEGER *max_size); |
| |
| HRESULT Commit( |
| [in] DWORD flags, |
| [out, optional] ULONG *disp); |
| |
| HRESULT AbortItem(); |
| } |
| |
| cpp_quote("HRESULT WINAPI CreateAssemblyCache(IAssemblyCache**,DWORD);") |