views:

30

answers:

1

I have the following code in a full .NET framework solution:


public delegate int CreateObjectDelegate(
            [In] ref Guid classID,
            [In] ref Guid interfaceID,
            [MarshalAs(UnmanagedType.Interface)] out object outObject);

...

var createObject = (NativeMethods.CreateObjectDelegate)
    Marshal.GetDelegateForFunctionPointer(
        NativeMethods.GetProcAddress(_modulePtr, "CreateObject"),
            typeof (NativeMethods.CreateObjectDelegate));
object result;
Guid interfaceId = _guid;
Guid classID = _classId;
createObject(ref classID, ref interfaceId, out result);

The purpose is to create the needed COM object at runtime. Is it possible with any .NET compact framework?

Note that it doesn't have Marshal.GetDelegateForFunctionPointer.

+1  A: 

For whatever (absolutely stupid) reason, the CF doesn't include Marshal.GetDelegateForFunctionPointer. I've been asking the team for it for years. There's simply no way to take a function pointer and call it in the CF.

ctacke