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
- WmlLinkAdapter.cs
- Rule.cs
- AppendHelper.cs
- ImageAutomationPeer.cs
- MarkupExtensionParser.cs
- SmiMetaDataProperty.cs
- NetworkAddressChange.cs
- AttributeProviderAttribute.cs
- XmlSchemaSimpleContentExtension.cs
- HandlerMappingMemo.cs
- DocumentSchemaValidator.cs
- WebBrowser.cs
- ObjectComplexPropertyMapping.cs
- PriorityChain.cs
- Mapping.cs
- RemotingServices.cs
- DrawingVisual.cs
- RadioButtonFlatAdapter.cs
- SortedList.cs
- DesigntimeLicenseContext.cs
- ValueOfAction.cs
- WsdlImporterElement.cs
- Single.cs
- ClientSideProviderDescription.cs
- _Semaphore.cs
- DataTableMappingCollection.cs
- TextTreeInsertUndoUnit.cs
- XmlNode.cs
- UserControlParser.cs
- PrivilegeNotHeldException.cs
- PluralizationServiceUtil.cs
- ColumnCollectionEditor.cs
- StateManagedCollection.cs
- Util.cs
- StylusOverProperty.cs
- CodeCompileUnit.cs
- ArrayElementGridEntry.cs
- SharedPersonalizationStateInfo.cs
- GZipObjectSerializer.cs
- MetadataPropertyAttribute.cs
- ActivationWorker.cs
- CardSpaceShim.cs
- NativeMethods.cs
- PeerOutputChannel.cs
- DataSourceView.cs
- DisableDpiAwarenessAttribute.cs
- HttpProfileBase.cs
- sortedlist.cs
- InnerItemCollectionView.cs
- ItemsControl.cs
- LinqDataSourceSelectEventArgs.cs
- Label.cs
- Vector.cs
- DelegatingMessage.cs
- safemediahandle.cs
- OleDbParameterCollection.cs
- BitVector32.cs
- itemelement.cs
- EventDescriptorCollection.cs
- Cursors.cs
- ServiceActivationException.cs
- QueueProcessor.cs
- CompilerCollection.cs
- ImageDesigner.cs
- Size.cs
- MessageDroppedTraceRecord.cs
- Crypto.cs
- KeyTimeConverter.cs
- RepeaterItemCollection.cs
- SqlDataSourceCommandEventArgs.cs
- PerformanceCounterPermissionAttribute.cs
- CustomBindingElementCollection.cs
- XamlNamespaceHelper.cs
- CompositeFontInfo.cs
- DataControlFieldCell.cs
- CommonObjectSecurity.cs
- RuleSetBrowserDialog.cs
- RangeValuePattern.cs
- XomlCompiler.cs
- PaintValueEventArgs.cs
- Rule.cs
- AssociationSetEnd.cs
- SafeThreadHandle.cs
- IntegerValidator.cs
- FixedSchema.cs
- Model3DGroup.cs
- ListViewEditEventArgs.cs
- NamespaceMapping.cs
- FixedSOMTable.cs
- EntityProviderFactory.cs
- Normalization.cs
- TypedTableBase.cs
- TrackPoint.cs
- HttpDebugHandler.cs
- ThreadPool.cs
- XPathPatternParser.cs
- MarkupExtensionReturnTypeAttribute.cs
- AsyncContentLoadedEventArgs.cs
- TripleDES.cs
- Triangle.cs