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
- PersistenceTypeAttribute.cs
- PropertySourceInfo.cs
- SchemaImporterExtensionsSection.cs
- InvalidFilterCriteriaException.cs
- HostedBindingBehavior.cs
- LocalizedNameDescriptionPair.cs
- Italic.cs
- Attributes.cs
- CharacterBufferReference.cs
- TimeSpan.cs
- NullableIntMinMaxAggregationOperator.cs
- IgnoreFileBuildProvider.cs
- TailCallAnalyzer.cs
- GatewayDefinition.cs
- XmlDocumentFragment.cs
- TableCell.cs
- KeyPullup.cs
- QilChoice.cs
- IERequestCache.cs
- ParameterModifier.cs
- SHA256.cs
- OdbcEnvironment.cs
- IMembershipProvider.cs
- DependencyObjectPropertyDescriptor.cs
- PropertyPathConverter.cs
- SecurityElement.cs
- EpmTargetTree.cs
- StaticExtension.cs
- EntityTransaction.cs
- SafeHandles.cs
- XmlArrayItemAttribute.cs
- HorizontalAlignConverter.cs
- dataprotectionpermission.cs
- HttpWriter.cs
- DoubleUtil.cs
- TransactionScope.cs
- BlurEffect.cs
- Panel.cs
- MediaCommands.cs
- MetadataProperty.cs
- ActivityValidator.cs
- FrameworkObject.cs
- RunWorkerCompletedEventArgs.cs
- DataGridCellAutomationPeer.cs
- XmlSerializerImportOptions.cs
- BookmarkManager.cs
- __FastResourceComparer.cs
- Cursors.cs
- SchemaInfo.cs
- DataControlHelper.cs
- HtmlShimManager.cs
- TypeResolver.cs
- linebase.cs
- EmptyEnumerable.cs
- ErrorsHelper.cs
- ValidationHelper.cs
- WrappedIUnknown.cs
- BackgroundFormatInfo.cs
- SessionStateItemCollection.cs
- SelectionHighlightInfo.cs
- ScaleTransform3D.cs
- ExceptionRoutedEventArgs.cs
- Switch.cs
- BrowsableAttribute.cs
- PersonalizationStateInfo.cs
- DataShape.cs
- ExpressionLink.cs
- SimpleWebHandlerParser.cs
- DataGridViewTextBoxCell.cs
- NumericPagerField.cs
- BindingCollectionElement.cs
- InternalBufferManager.cs
- Converter.cs
- XamlInt32CollectionSerializer.cs
- CacheVirtualItemsEvent.cs
- AsyncOperation.cs
- ExtensionQuery.cs
- Table.cs
- IdentifierService.cs
- PerformanceCounterManager.cs
- WindowsSlider.cs
- ContextMenuService.cs
- XXXOnTypeBuilderInstantiation.cs
- TraceInternal.cs
- KeyedPriorityQueue.cs
- SqlDependencyUtils.cs
- Math.cs
- CalendarAutoFormat.cs
- TextFormattingConverter.cs
- SamlAuthorizationDecisionStatement.cs
- COM2Enum.cs
- HtmlInputHidden.cs
- ExpandCollapsePattern.cs
- SiteMapPath.cs
- XsltSettings.cs
- XAMLParseException.cs
- WebExceptionStatus.cs
- XmlNamespaceMapping.cs
- FontStyles.cs
- SrgsSemanticInterpretationTag.cs