简体   繁体   中英

.NET Compact COM interoperability

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.

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM