[DllImport("ole32.dll")]
static extern int CoInitialize(IntPtr pvReserved);
VB.NET Signature:
<DllImport("ole32.dll")> _
Shared Function CoInitialize(pvReserved As IntPtr) As Integer
End Function
User-Defined Types:
None.
Notes:
Besides the fact that CoInitializeEx has replaced CoInitialize, you shouldn't need to call this in managed code via PInvoke because the CLR already initializes COM when appropriate.
Tips & Tricks:
Please add some!
Sample Code:
Please add some!
Alternative Managed API:
Do you know one? Please contribute it!
An IntPtr is a pointer to a memory location (unmanaged) that adapts to the platform it is running on (64-bit, etc.) UNLIKE a standard int/Integer. You should always use this type for unmanaged calls that require it, even though an int will appear to work on your development machine.
1/13/2008 4:00:13 AM - Damon Carr-72.43.165.29
CoInitializeEx initializes the COM library for use by the calling thread, sets the thread's concurrency model, and creates a new apartment for the thread if one is required. Values for the dwCoInit parameter are taken from the COINIT enumeration. However, since pinvoke is a dotNET construct you should be aware that dotNET already does a COM initialization and therefore calling a CoInitializeEx function most likely will not do what you expect. This problem occurs when trying to instantiate a COM object from within dotNET where the COM objects threading model is different from dotNETs. Search on Common Language Runtime or CLR and COINIT_APARTMENTTHREADED to find posts on this issue.
7/25/2015 5:25:25 PM - -5.202.143.191
Registers security and sets the default security values for the process, but this can't be directly called from managed code.
11/17/2010 12:47:58 AM - -71.32.39.4
The mechanism provided by the CLR that enables managed code to call static DLL exports.k