zoukankan      html  css  js  c++  java
  • CoInitializeEx()

    CoInitializeEx是 Windows提供的API函数,为当前线程初始化COM库并设置并发模式 。应用程序调用com库中的函数(除CoGetMalloc内存分配函数)之前必须初始化com库。

    函数原型

    HRESULT CoInitializeEx(

    void * pvReserved,

    DWORD dwCoInit

    );

    参数介绍:

    pvReserved

    系统 保留的参数,必须传入 NULL.

    dwCoInit

    该标示指明基于当前线程的并发模式和初始化选项。该参数是 COINIT 枚举类型,传入参数时候,除了

    COINIT_APARTMENTTHREADED 和COINIT_MULTITHREADED标记外,其余的标记可以组合使用。

    返回值:

    S_OK :COM库初始化成功。

    S_FALSE :当前线程上,COM库已经被初始化。

    RPC_E_CHANGED_MODE :COM库已经被初始化且传入参数设置的并发模式和本次不同。

    注意事项:

    在应用程序中使用COM库,至少要调用一次CoInitializeEx函数(通常也就调用一次)。如果传入参数的并发标志相同,单个线程也可以多次调用该函数,但后来有效的调用将返回 S_FALSE。在正常关闭COM库情况下,每一个CoInitialize 或者CoInitializeEx的成功的调用(也包含返回S_FALSE的调用),都必须用通Uninitialize函数来结束。

    使用函数 CoInitializeEx的代码的前面需要包含于处理标志 #define _WIN32_DCOM

    基于线程的并发模式一旦设置,将不能再改变。一个线程上调用CoInitializeEx如果与原来调用设置的并发模式不一

    致,将会失败并返回RPC_E_CHANGED_MODE。

  • 相关阅读:
    ansible使用
    git undo last commit
    metadata简介
    tinyint(4),tinyint(80)有什么区别
    php 打印debug日志
    tinycore Network card configuration during exec bootlocal.sh
    Windows使用CMD命令查看进程和终止进程
    @NotEmpty,@NotNull和@NotBlank的区别
    spring boot 程序启动缓慢的问题(二)
    LocalDateTime的一些用法
  • 原文地址:https://www.cnblogs.com/killer-xc/p/6670665.html
Copyright © 2011-2022 走看看