//----------------------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.ComIntegration { using System; using System.Collections; using System.Runtime.InteropServices; /* * Stolen from ES. * I removed SuppressUnmanagedCodeSecurity. We can re-add it later. */ enum COMAdminThreadingModel { Apartment = 0, Free = 1, Main = 2, Both = 3, Neutral = 4, NotSpecified = 5 } enum COMAdminIsolationLevel { Any = 0, ReadUncommitted = 1, ReadCommitted = 2, RepeatableRead = 3, Serializable = 4 } [ComImport] [Guid("790C6E0B-9194-4cc9-9426-A48A63185696")] [InterfaceType(ComInterfaceType.InterfaceIsDual)] internal interface ICatalog2 { [DispId(0x00000001)] [return: MarshalAs(UnmanagedType.Interface)] Object GetCollection([In, MarshalAs(UnmanagedType.BStr)] String bstrCollName); [DispId(0x00000002)] [return: MarshalAs(UnmanagedType.Interface)] Object Connect([In, MarshalAs(UnmanagedType.BStr)] String connectStr); [DispId(0x00000003)] int MajorVersion(); [DispId(0x00000004)] int MinorVersion(); [DispId(0x00000005)] [return: MarshalAs(UnmanagedType.Interface)] Object GetCollectionByQuery([In, MarshalAs(UnmanagedType.BStr)] String collName, [In, MarshalAs(UnmanagedType.SafeArray)] ref Object[] aQuery); [DispId(0x00000006)] void ImportComponent([In, MarshalAs(UnmanagedType.BStr)] String bstrApplIdOrName, [In, MarshalAs(UnmanagedType.BStr)] String bstrCLSIDOrProgId); [DispId(0x00000007)] void InstallComponent([In, MarshalAs(UnmanagedType.BStr)] String bstrApplIdOrName, [In, MarshalAs(UnmanagedType.BStr)] String bstrDLL, [In, MarshalAs(UnmanagedType.BStr)] String bstrTLB, [In, MarshalAs(UnmanagedType.BStr)] String bstrPSDLL); [DispId(0x00000008)] void ShutdownApplication([In, MarshalAs(UnmanagedType.BStr)] String bstrApplIdOrName); [DispId(0x00000009)] void ExportApplication([In, MarshalAs(UnmanagedType.BStr)] String bstrApplIdOrName, [In, MarshalAs(UnmanagedType.BStr)] String bstrApplicationFile, [In] int lOptions); [DispId(0x0000000a)] void InstallApplication([In, MarshalAs(UnmanagedType.BStr)] String bstrApplicationFile, [In, MarshalAs(UnmanagedType.BStr)] String bstrDestinationDirectory, [In] int lOptions, [In, MarshalAs(UnmanagedType.BStr)] String bstrUserId, [In, MarshalAs(UnmanagedType.BStr)] String bstrPassword, [In, MarshalAs(UnmanagedType.BStr)] String bstrRSN); [DispId(0x0000000b)] void StopRouter(); [DispId(0x0000000c)] void RefreshRouter(); [DispId(0x0000000d)] void StartRouter(); [DispId(0x0000000e)] void Reserved1(); [DispId(0x0000000f)] void Reserved2(); [DispId(0x00000010)] void InstallMultipleComponents([In, MarshalAs(UnmanagedType.BStr)] String bstrApplIdOrName, [In, MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT)] ref Object[] fileNames, [In, MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT)] ref Object[] CLSIDS); [DispId(0x00000011)] void GetMultipleComponentsInfo([In, MarshalAs(UnmanagedType.BStr)] String bstrApplIdOrName, [In] Object varFileNames, [Out, MarshalAs(UnmanagedType.SafeArray)] out Object[] varCLSIDS, [Out, MarshalAs(UnmanagedType.SafeArray)] out Object[] varClassNames, [Out, MarshalAs(UnmanagedType.SafeArray)] out Object[] varFileFlags, [Out, MarshalAs(UnmanagedType.SafeArray)] out Object[] varComponentFlags); [DispId(0x00000012)] void RefreshComponents(); [DispId(0x00000013)] void BackupREGDB([In, MarshalAs(UnmanagedType.BStr)] String bstrBackupFilePath); [DispId(0x00000014)] void RestoreREGDB([In, MarshalAs(UnmanagedType.BStr)] String bstrBackupFilePath); [DispId(0x00000015)] void QueryApplicationFile([In, MarshalAs(UnmanagedType.BStr)] String bstrApplicationFile, [Out, MarshalAs(UnmanagedType.BStr)] out String bstrApplicationName, [Out, MarshalAs(UnmanagedType.BStr)] out String bstrApplicationDescription, [Out, MarshalAs(UnmanagedType.VariantBool)] out bool bHasUsers, [Out, MarshalAs(UnmanagedType.VariantBool)] out bool bIsProxy, [Out, MarshalAs(UnmanagedType.SafeArray)] out Object[] varFileNames); [DispId(0x00000016)] void StartApplication([In, MarshalAs(UnmanagedType.BStr)] String bstrApplIdOrName); [DispId(0x00000017)] int ServiceCheck([In] int lService); [DispId(0x00000018)] void InstallMultipleEventClasses([In, MarshalAs(UnmanagedType.BStr)] String bstrApplIdOrName, [In, MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT)] ref Object[] fileNames, [In, MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT)] ref Object[] CLSIDS); [DispId(0x00000019)] void InstallEventClass([In, MarshalAs(UnmanagedType.BStr)] String bstrApplIdOrName, [In, MarshalAs(UnmanagedType.BStr)] String bstrDLL, [In, MarshalAs(UnmanagedType.BStr)] String bstrTLB, [In, MarshalAs(UnmanagedType.BStr)] String bstrPSDLL); [DispId(0x0000001a)] void GetEventClassesForIID([In] String bstrIID, [In, Out, MarshalAs(UnmanagedType.SafeArray)] ref Object[] varCLSIDS, [In, Out, MarshalAs(UnmanagedType.SafeArray)] ref Object[] varProgIDs, [In, Out, MarshalAs(UnmanagedType.SafeArray)] ref Object[] varDescriptions); [DispId(0x0000001b)] [return: MarshalAs(UnmanagedType.Interface)] Object GetCollectionByQuery2( [In, MarshalAs(UnmanagedType.BStr)] String bstrCollectionName, [In, MarshalAs(UnmanagedType.LPStruct)] Object pVarQueryStrings); [DispId(0x0000001c)] [return: MarshalAs(UnmanagedType.BStr)] String GetApplicationInstanceIDFromProcessID([In, MarshalAs(UnmanagedType.I4)] int lProcessID); [DispId(0x0000001d)] void ShutdownApplicationInstances([In, MarshalAs(UnmanagedType.LPStruct)] Object pVarApplicationInstanceID); [DispId(0x0000001e)] void PauseApplicationInstances([In, MarshalAs(UnmanagedType.LPStruct)] Object pVarApplicationInstanceID); [DispId(0x0000001f)] void ResumeApplicationInstances([In, MarshalAs(UnmanagedType.LPStruct)] Object pVarApplicationInstanceID); [DispId(0x00000020)] void RecycleApplicationInstances( [In, MarshalAs(UnmanagedType.LPStruct)] Object pVarApplicationInstanceID, [In, MarshalAs(UnmanagedType.I4)] int lReasonCode); [DispId(0x00000021)] [return: MarshalAs(UnmanagedType.VariantBool)] bool AreApplicationInstancesPaused([In, MarshalAs(UnmanagedType.LPStruct)] Object pVarApplicationInstanceID); [DispId(0x00000022)] [return: MarshalAs(UnmanagedType.BStr)] String DumpApplicationInstance( [In, MarshalAs(UnmanagedType.BStr)] String bstrApplicationInstanceID, [In, MarshalAs(UnmanagedType.BStr)] String bstrDirectory, [In, MarshalAs(UnmanagedType.I4)] int lMaxImages); [DispId(0x00000023)] [return: MarshalAs(UnmanagedType.VariantBool)] bool IsApplicationInstanceDumpSupported(); [DispId(0x00000024)] void CreateServiceForApplication( [In, MarshalAs(UnmanagedType.BStr)] String bstrApplicationIDOrName, [In, MarshalAs(UnmanagedType.BStr)] String bstrServiceName, [In, MarshalAs(UnmanagedType.BStr)] String bstrStartType, [In, MarshalAs(UnmanagedType.BStr)] String bstrErrorControl, [In, MarshalAs(UnmanagedType.BStr)] String bstrDependencies, [In, MarshalAs(UnmanagedType.BStr)] String bstrRunAs, [In, MarshalAs(UnmanagedType.BStr)] String bstrPassword, [In, MarshalAs(UnmanagedType.VariantBool)] bool bDesktopOk); [DispId(0x00000025)] void DeleteServiceForApplication([In, MarshalAs(UnmanagedType.BStr)] String bstrApplicationIDOrName); [DispId(0x00000026)] [return: MarshalAs(UnmanagedType.BStr)] String GetPartitionID([In, MarshalAs(UnmanagedType.BStr)] String bstrApplicationIDOrName); [DispId(0x00000027)] [return: MarshalAs(UnmanagedType.BStr)] String GetPartitionName([In, MarshalAs(UnmanagedType.BStr)] String bstrApplicationIDOrName); [DispId(0x00000028)] void CurrentPartition([In, MarshalAs(UnmanagedType.BStr)]String bstrPartitionIDOrName); [DispId(0x00000029)] [return: MarshalAs(UnmanagedType.BStr)] String CurrentPartitionID(); [DispId(0x0000002A)] [return: MarshalAs(UnmanagedType.BStr)] String CurrentPartitionName(); [DispId(0x0000002B)] [return: MarshalAs(UnmanagedType.BStr)] String GlobalPartitionID(); [DispId(0x0000002C)] void FlushPartitionCache(); [DispId(0x0000002D)] void CopyApplications( [In, MarshalAs(UnmanagedType.BStr)] String bstrSourcePartitionIDOrName, [In, MarshalAs(UnmanagedType.LPStruct)] Object pVarApplicationID, [In, MarshalAs(UnmanagedType.BStr)] String bstrDestinationPartitionIDOrName); [DispId(0x0000002E)] void CopyComponents( [In, MarshalAs(UnmanagedType.BStr)] String bstrSourceApplicationIDOrName, [In, MarshalAs(UnmanagedType.LPStruct)] Object pVarCLSIDOrProgID, [In, MarshalAs(UnmanagedType.BStr)] String bstrDestinationApplicationIDOrName); [DispId(0x0000002F)] void MoveComponents( [In, MarshalAs(UnmanagedType.BStr)] String bstrSourceApplicationIDOrName, [In, MarshalAs(UnmanagedType.LPStruct)] Object pVarCLSIDOrProgID, [In, MarshalAs(UnmanagedType.BStr)] String bstrDestinationApplicationIDOrName); [DispId(0x00000030)] void AliasComponent( [In, MarshalAs(UnmanagedType.BStr)] String bstrSrcApplicationIDOrName, [In, MarshalAs(UnmanagedType.BStr)] String bstrCLSIDOrProgID, [In, MarshalAs(UnmanagedType.BStr)] String bstrDestApplicationIDOrName, [In, MarshalAs(UnmanagedType.BStr)] String bstrNewProgId, [In, MarshalAs(UnmanagedType.BStr)] String bstrNewClsid); [DispId(0x00000031)] [return: MarshalAs(UnmanagedType.Interface)] Object IsSafeToDelete([In, MarshalAs(UnmanagedType.BStr)] String bstrDllName); [DispId(0x00000032)] void ImportUnconfiguredComponents( [In, MarshalAs(UnmanagedType.BStr)] String bstrApplicationIDOrName, [In, MarshalAs(UnmanagedType.LPStruct)] Object pVarCLSIDOrProgID, [In, MarshalAs(UnmanagedType.LPStruct)] Object pVarComponentType); [DispId(0x00000033)] void PromoteUnconfiguredComponents( [In, MarshalAs(UnmanagedType.BStr)] String bstrApplicationIDOrName, [In, MarshalAs(UnmanagedType.LPStruct)] Object pVarCLSIDOrProgID, [In, MarshalAs(UnmanagedType.LPStruct)] Object pVarComponentType); [DispId(0x00000034)] void ImportComponents( [In, MarshalAs(UnmanagedType.BStr)] String bstrApplicationIDOrName, [In, MarshalAs(UnmanagedType.LPStruct)] Object pVarCLSIDOrProgID, [In, MarshalAs(UnmanagedType.LPStruct)] Object pVarComponentType); [DispId(0x00000035)] [return: MarshalAs(UnmanagedType.VariantBool)] bool Is64BitCatalogServer(); [DispId(0x00000036)] void ExportPartition( [In, MarshalAs(UnmanagedType.BStr)] String bstrPartitionIDOrName, [In, MarshalAs(UnmanagedType.BStr)] String bstrPartitionFileName, [In, MarshalAs(UnmanagedType.I4)] int lOptions); [DispId(0x00000037)] void InstallPartition( [In, MarshalAs(UnmanagedType.BStr)] String bstrFileName, [In, MarshalAs(UnmanagedType.BStr)] String bstrDestDirectory, [In, MarshalAs(UnmanagedType.I4)] int lOptions, [In, MarshalAs(UnmanagedType.BStr)] String bstrUserID, [In, MarshalAs(UnmanagedType.BStr)] String bstrPassword, [In, MarshalAs(UnmanagedType.BStr)] String bstrRSN); [DispId(0x00000038)] [return: MarshalAs(UnmanagedType.IDispatch)] Object QueryApplicationFile2([In, MarshalAs(UnmanagedType.BStr)] String bstrApplicationFile); [DispId(0x00000039)] [return: MarshalAs(UnmanagedType.I4)] int GetComponentVersionCount([In, MarshalAs(UnmanagedType.BStr)] String bstrCLSIDOrProgID); } [ComImport] [Guid("6EB22871-8A19-11D0-81B6-00A0C9231C29")] internal interface ICatalogObject { [DispId(0x00000001)] Object GetValue([In, MarshalAs(UnmanagedType.BStr)] String propName); [DispId(0x00000001)] void SetValue([In, MarshalAs(UnmanagedType.BStr)] String propName, [In] Object value); [DispId(0x00000002)] Object Key(); [DispId(0x00000003)] Object Name(); [DispId(0x00000004)] [return: MarshalAs(UnmanagedType.VariantBool)] bool IsPropertyReadOnly([In, MarshalAs(UnmanagedType.BStr)] String bstrPropName); bool Valid { [DispId(0x00000005)] [return: MarshalAs(UnmanagedType.VariantBool)] get; } [DispId(0x00000006)] [return: MarshalAs(UnmanagedType.VariantBool)] bool IsPropertyWriteOnly([In, MarshalAs(UnmanagedType.BStr)] String bstrPropName); } [ComImport] [Guid("6EB22872-8A19-11D0-81B6-00A0C9231C29")] [InterfaceType(ComInterfaceType.InterfaceIsDual)] internal interface ICatalogCollection { [DispId(unchecked((int)0xfffffffc))] void GetEnumerator(out IEnumerator pEnum); [DispId(0x00000001)] [return: MarshalAs(UnmanagedType.Interface)] Object Item([In] int lIndex); [DispId(0x60020002)] int Count(); [DispId(0x60020003)] void Remove([In] int lIndex); [DispId(0x60020004)] [return: MarshalAs(UnmanagedType.Interface)] Object Add(); [DispId(0x00000002)] void Populate(); [DispId(0x00000003)] int SaveChanges(); [DispId(0x00000004)] [return: MarshalAs(UnmanagedType.Interface)] Object GetCollection([In, MarshalAs(UnmanagedType.BStr)] String bstrCollName, [In] Object varObjectKey); [DispId(0x00000006)] Object Name(); bool IsAddEnabled { [DispId(0x00000007)] [return: MarshalAs(UnmanagedType.VariantBool)] get; } bool IsRemoveEnabled { [DispId(0x00000008)] [return: MarshalAs(UnmanagedType.VariantBool)] get; } [DispId(0x00000009)] [return: MarshalAs(UnmanagedType.Interface)] Object GetUtilInterface(); int DataStoreMajorVersion { [DispId(0x0000000a)] get; } int DataStoreMinorVersion { [DispId(0x0000000b)] get; } void PopulateByKey([In, MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT)] Object[] aKeys); [DispId(0x0000000d)] void PopulateByQuery([In, MarshalAs(UnmanagedType.BStr)] String bstrQueryString, [In] int lQueryType); } [ComImport] [Guid("F618C514-DFB8-11D1-A2CF-00805FC79235")] internal class xCatalog { } }