Hi there,
I am getting a System.NullReference exception when calling an unmanaged
method CreateClassEnumerator. I am really new to Interop, so that I am
having trouble finding out a solution. The code is the following :
<code>
using System;
using System.Runtime.InteropServices;
using System.Collections;
namespace COMInterop1
{
/*
[
object,
uuid(29840822-5B84-11D0-BD3B-00A0C911CE86),
pointer_default(unique)
]
interface ICreateDevEnum : IUnknown
{
import "oaidl.idl";
HRESULT CreateClassEnumerator(
[in] REFCLSID clsidDeviceClass,
[out] IEnumMoniker ** ppEnumMoniker,
[in] DWORD dwFlags);
}*/
[//System device Enumerator Import, implements ICreateDevEnum
Guid("62BE5D10-60EB-11d0-BD3B-00A0C911CE86"),ComImport]
public class SystemDeviceEnumerator
{
}
//Managed declaration of ICreateDevEnum
[Guid("29840822-5B84-11D0-BD3B-00A0C911CE86"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown )]
interface ICreateDevEnum {
void CreateClassEnumerator([In] Guid clsidDeviceClass, [Out] out
UCOMIEnumMoniker ppEnumMoniker, [In] UInt32 dwFlags);
}
public class Tester
{
static void Main ()
{
Guid deviceClass = new Guid("860BB310-5D01-11d0-BD3B-00A0C911CE86");
UCOMIEnumMoniker EnumMon;
UInt32 dFlag = 0;
SystemDeviceEnumerator de = new SystemDeviceEnumerator();
ICreateDevEnum Ide = (ICreateDevEnum)de;
try
{
Ide.CreateClassEnumerator(deviceClass, out EnumMon, dFlag);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
Console.Read();
}
}
}
}
</code>