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.
Closes the COM library on the current thread, unloads all DLLs loaded by
the thread, frees any other resources that the thread maintains, and
forces all RPC connections on the thread to close.
The CreateFile function creates or opens a file, file stream, directory, physical
disk, volume, console buffer, tape drive, communications resource, mailslot, or
named pipe.
Creates an input/output (I/O) completion port and associates it with a specified
file handle, or creates an I/O completion port that is not yet associated with a
file handle, allowing association at a later time.
For remote-access situations where ui is not an option, if UI was specified
on protect or unprotect operation, the call will fail and GetLastError() will
indicate ERROR_PASSWORD_RESTRICTION.