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
- EntityDataSourceUtil.cs
- ConstructorExpr.cs
- ItemList.cs
- DecoderNLS.cs
- ContextMenuAutomationPeer.cs
- ConditionedDesigner.cs
- XamlPathDataSerializer.cs
- PolygonHotSpot.cs
- WorkflowServiceAttributesTypeConverter.cs
- BitmapPalettes.cs
- Panel.cs
- StringConcat.cs
- Pens.cs
- OleDbDataReader.cs
- Table.cs
- DataGridViewCheckBoxCell.cs
- XmlNavigatorStack.cs
- FrameworkReadOnlyPropertyMetadata.cs
- ListBoxChrome.cs
- SynchronizationContext.cs
- InstanceDescriptor.cs
- FacetChecker.cs
- CompositeActivityMarkupSerializer.cs
- SineEase.cs
- GeneralTransform2DTo3D.cs
- MetadataSource.cs
- InputQueueChannelAcceptor.cs
- MostlySingletonList.cs
- SqlTypeConverter.cs
- XmlDataCollection.cs
- AnchorEditor.cs
- ColorConvertedBitmapExtension.cs
- PolyLineSegmentFigureLogic.cs
- Path.cs
- ScalarConstant.cs
- PropertyInformation.cs
- Root.cs
- Add.cs
- UxThemeWrapper.cs
- RenamedEventArgs.cs
- TypeGeneratedEventArgs.cs
- NestPullup.cs
- XmlCDATASection.cs
- DataBoundControl.cs
- GenericsInstances.cs
- TextTreeUndoUnit.cs
- assertwrapper.cs
- SizeValueSerializer.cs
- ListMarkerLine.cs
- ExceptionUtil.cs
- HttpModulesSection.cs
- Error.cs
- X509CertificateInitiatorClientCredential.cs
- MetadataElement.cs
- XmlNodeComparer.cs
- EntitySetBase.cs
- MetadataFile.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- XsltContext.cs
- SafeIUnknown.cs
- Registration.cs
- JsonDeserializer.cs
- StyleReferenceConverter.cs
- PhoneCall.cs
- ColorTranslator.cs
- ObjectIDGenerator.cs
- BaseDataListDesigner.cs
- HostSecurityManager.cs
- GlobalizationAssembly.cs
- RegexCode.cs
- TypeInitializationException.cs
- CancelEventArgs.cs
- EdmTypeAttribute.cs
- LambdaCompiler.ControlFlow.cs
- ExpressionBuilder.cs
- HttpSocketManager.cs
- GridViewSelectEventArgs.cs
- DecoderBestFitFallback.cs
- ClientSession.cs
- WeakReadOnlyCollection.cs
- MasterPageParser.cs
- StrokeCollectionDefaultValueFactory.cs
- GridViewColumnCollection.cs
- MessageEventSubscriptionService.cs
- PowerModeChangedEventArgs.cs
- AssemblyResourceLoader.cs
- Part.cs
- SqlMethods.cs
- SByte.cs
- CalendarDayButton.cs
- PrintPreviewControl.cs
- connectionpool.cs
- M3DUtil.cs
- WebControl.cs
- Scheduling.cs
- URLIdentityPermission.cs
- FocusManager.cs
- CollectionBase.cs
- SHA384CryptoServiceProvider.cs
- NotifyCollectionChangedEventArgs.cs