Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Wmi / managed / System / Management / wmiutil.cs / 1305376 / wmiutil.cs
using System;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using WbemClient_v1;
namespace System.Management
{
[ComImport, Guid("87A5AD68-A38A-43ef-ACA9-EFE910E5D24C"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IWmiEventSource
{
[PreserveSig]
void Indicate(IntPtr pIWbemClassObject);
[PreserveSig]
void SetStatus(
int lFlags,
int hResult,
[MarshalAs(UnmanagedType.BStr)] string strParam ,
IntPtr pObjParam
);
}
#if USEIWOS
// The following is a manually defined wrapper for IWbemObjectSink
// since the size_is attribute cannot be dealt with by TlbImp.
[Guid("7c857801-7381-11cf-884d-00aa004b2e24"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IWbemObjectSink
{
[PreserveSig]
void Indicate(
long lObjectCount,
[MarshalAs(UnmanagedType.Interface, SizeParamIndex=0)] IWbemClassObject [] apObjArray
);
[PreserveSig]
void SetStatus(
long lFlags,
int hResult,
[MarshalAs(UnmanagedType.BStr)] string strParam,
[MarshalAs(UnmanagedType.Interface)] IWbemClassObject pObjParam
);
};
#endif
//Class for calling GetErrorInfo from managed code
class WbemErrorInfo
{
public static IWbemClassObjectFreeThreaded GetErrorInfo()
{
IErrorInfo errorInfo = GetErrorInfo(0);
if(null != errorInfo)
{
IntPtr pUnk = Marshal.GetIUnknownForObject(errorInfo);
IntPtr pIWbemClassObject;
Marshal.QueryInterface(pUnk, ref IWbemClassObjectFreeThreaded.IID_IWbemClassObject, out pIWbemClassObject);
Marshal.Release(pUnk);
// The IWbemClassObjectFreeThreaded instance will own reference count on pIWbemClassObject
if(pIWbemClassObject != IntPtr.Zero)
return new IWbemClassObjectFreeThreaded(pIWbemClassObject);
}
return null;
}
[ResourceExposure( ResourceScope.None),DllImport("oleaut32.dll", PreserveSig=false)]
static extern IErrorInfo GetErrorInfo(int reserved);
}
//RCW for IErrorInfo
[ComImport]
[Guid("1CF2B120-547D-101B-8E65-08002B2BD119")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IErrorInfo
{
Guid GetGUID();
[return:MarshalAs(UnmanagedType.BStr)]
string GetSource();
[return:MarshalAs(UnmanagedType.BStr)]
string GetDescription();
[return:MarshalAs(UnmanagedType.BStr)]
string GetHelpFile();
uint GetHelpContext();
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
using System;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using WbemClient_v1;
namespace System.Management
{
[ComImport, Guid("87A5AD68-A38A-43ef-ACA9-EFE910E5D24C"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IWmiEventSource
{
[PreserveSig]
void Indicate(IntPtr pIWbemClassObject);
[PreserveSig]
void SetStatus(
int lFlags,
int hResult,
[MarshalAs(UnmanagedType.BStr)] string strParam ,
IntPtr pObjParam
);
}
#if USEIWOS
// The following is a manually defined wrapper for IWbemObjectSink
// since the size_is attribute cannot be dealt with by TlbImp.
[Guid("7c857801-7381-11cf-884d-00aa004b2e24"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IWbemObjectSink
{
[PreserveSig]
void Indicate(
long lObjectCount,
[MarshalAs(UnmanagedType.Interface, SizeParamIndex=0)] IWbemClassObject [] apObjArray
);
[PreserveSig]
void SetStatus(
long lFlags,
int hResult,
[MarshalAs(UnmanagedType.BStr)] string strParam,
[MarshalAs(UnmanagedType.Interface)] IWbemClassObject pObjParam
);
};
#endif
//Class for calling GetErrorInfo from managed code
class WbemErrorInfo
{
public static IWbemClassObjectFreeThreaded GetErrorInfo()
{
IErrorInfo errorInfo = GetErrorInfo(0);
if(null != errorInfo)
{
IntPtr pUnk = Marshal.GetIUnknownForObject(errorInfo);
IntPtr pIWbemClassObject;
Marshal.QueryInterface(pUnk, ref IWbemClassObjectFreeThreaded.IID_IWbemClassObject, out pIWbemClassObject);
Marshal.Release(pUnk);
// The IWbemClassObjectFreeThreaded instance will own reference count on pIWbemClassObject
if(pIWbemClassObject != IntPtr.Zero)
return new IWbemClassObjectFreeThreaded(pIWbemClassObject);
}
return null;
}
[ResourceExposure( ResourceScope.None),DllImport("oleaut32.dll", PreserveSig=false)]
static extern IErrorInfo GetErrorInfo(int reserved);
}
//RCW for IErrorInfo
[ComImport]
[Guid("1CF2B120-547D-101B-8E65-08002B2BD119")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IErrorInfo
{
Guid GetGUID();
[return:MarshalAs(UnmanagedType.BStr)]
string GetSource();
[return:MarshalAs(UnmanagedType.BStr)]
string GetDescription();
[return:MarshalAs(UnmanagedType.BStr)]
string GetHelpFile();
uint GetHelpContext();
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlBulkCopyColumnMapping.cs
- TextUtf8RawTextWriter.cs
- DatePickerTextBox.cs
- XmlSchemaCompilationSettings.cs
- DbSource.cs
- TrackingRecord.cs
- FlowLayoutSettings.cs
- ResolveNameEventArgs.cs
- EditorAttributeInfo.cs
- XmlSerializerFormatAttribute.cs
- XMLDiffLoader.cs
- SkinBuilder.cs
- SafeLocalMemHandle.cs
- CodeObjectCreateExpression.cs
- ServiceHttpModule.cs
- ScrollBar.cs
- DefaultPropertyAttribute.cs
- PaintValueEventArgs.cs
- Pipe.cs
- CapabilitiesState.cs
- DataChangedEventManager.cs
- DataServiceContext.cs
- TransformBlockRequest.cs
- SizeAnimationClockResource.cs
- FixedSOMElement.cs
- SupportsEventValidationAttribute.cs
- OlePropertyStructs.cs
- IUnknownConstantAttribute.cs
- RuntimeIdentifierPropertyAttribute.cs
- ScrollEvent.cs
- WindowsListViewSubItem.cs
- FontDialog.cs
- DataGridViewImageCell.cs
- Process.cs
- DropTarget.cs
- MultiAsyncResult.cs
- TypeLibConverter.cs
- DirtyTextRange.cs
- TimeSpan.cs
- SafeRightsManagementQueryHandle.cs
- ToolStripDropDownClosedEventArgs.cs
- DataObjectMethodAttribute.cs
- CallbackValidator.cs
- CLRBindingWorker.cs
- KeyInfo.cs
- CngKeyCreationParameters.cs
- DefaultBindingPropertyAttribute.cs
- DataTableCollection.cs
- CodeDomConfigurationHandler.cs
- Overlapped.cs
- ProtectedProviderSettings.cs
- EdmFunction.cs
- TcpActivation.cs
- ColorBlend.cs
- System.Data_BID.cs
- CodeDOMUtility.cs
- DataGridViewBindingCompleteEventArgs.cs
- AppDomainShutdownMonitor.cs
- GeneratedContractType.cs
- TTSEngineTypes.cs
- WebCategoryAttribute.cs
- StructureChangedEventArgs.cs
- XmlSchemaExporter.cs
- ViewStateException.cs
- Package.cs
- XmlSchemaSubstitutionGroup.cs
- VectorConverter.cs
- CacheChildrenQuery.cs
- ObjectAnimationUsingKeyFrames.cs
- ScrollEvent.cs
- Resources.Designer.cs
- URLString.cs
- ComponentSerializationService.cs
- DocumentPageViewAutomationPeer.cs
- LogLogRecord.cs
- HitTestResult.cs
- DrawItemEvent.cs
- WebPartTransformerCollection.cs
- TextTreeInsertUndoUnit.cs
- SqlBooleanizer.cs
- TextPattern.cs
- LocatorPart.cs
- WebBaseEventKeyComparer.cs
- DesignerVerbCollection.cs
- StandardRuntimeEnumValidatorAttribute.cs
- DesignerLabelAdapter.cs
- RegistrySecurity.cs
- DurableRuntimeValidator.cs
- ComplexObject.cs
- ComponentConverter.cs
- GridSplitter.cs
- ContractNamespaceAttribute.cs
- _NetRes.cs
- FrameDimension.cs
- CommandConverter.cs
- XPathNodeInfoAtom.cs
- IndicFontClient.cs
- XmlDataDocument.cs
- ServiceModelExtensionCollectionElement.cs
- XmlSerializerFactory.cs