CONVINFO 结构是 Dynamic Data Exchange Management Library(DDEML)中的一个结构体,用于保存关于 DDE 会话的信息。以下是 CONVINFO 结构的定义:
typedef struct tagCONVINFO {
  DWORD cb;             // 结构体的大小,用于版本控制
  DWORD wFlags;         // 会话的标志
  DWORD wFmt;           // 格式标识符
  DWORD wConvst;        // 会话的状态
  DWORD wLastError;     // 最后的错误码
  HCONV hConvPartner;   // 伙伴会话的句柄
  HSZ hszSvcPartner;    // 服务名字符串句柄
  HSZ hszServiceReq;    // 服务请求字符串句柄
  HSZ hszTopic;         // 话题字符串句柄
  HSZ hszItem;          // 项字符串句柄
  DWORD wFmtPartner;    // 伙伴的格式标识符
  DWORD wType;          // 会话的类型
  DWORD wStatus;        // 会话的状态
  DWORD wConvstValue;   // 会话状态的数值
  DWORD wLastErrorValue;// 最后错误的数值
} CONVINFO, *PCONVINFO;

各个字段的含义如下:

  •  cb: 结构体的大小,用于版本控制。在使用前,需要将这个字段设置为结构体的大小,可以使用 sizeof(CONVINFO)。

  •  wFlags: 会话的标志,指定一些会话的属性。例如,ST_CONNECTED、ST_ADVISE 等。

  •  wFmt: 格式标识符,表示数据的格式。

  •  wConvst: 会话的状态,表示会话的当前状态,如 XST_NULL、XST_INIT、XST_REQSENT 等。

  •  wLastError: 最后的错误码,表示最近的错误代码。

  •  hConvPartner: 伙伴会话的句柄,用于表示当前会话的伙伴会话。

  •  hszSvcPartner: 服务名字符串的句柄,表示伙伴的服务名。

  •  hszServiceReq: 服务请求字符串的句柄,表示伙伴的服务请求。

  •  hszTopic: 话题字符串的句柄,表示当前会话的话题。

  •  hszItem: 项字符串的句柄,表示当前会话的项。

  •  wFmtPartner: 伙伴的格式标识符。

  •  wType: 会话的类型,如 XTYP_CONNECT、XTYP_ADVREQ 等。

  •  wStatus: 会话的状态,表示会话的当前状态。

  •  wConvstValue: 会话状态的数值。

  •  wLastErrorValue: 最后错误的数值。


这个结构体通常用于调用 DdeQueryConvInfo 函数,以获取有关 DDE 会话的详细信息。在使用前,需要初始化 cb 字段为结构体的大小。以下是一个简单的示例:
#include <Ddeml.h>

// ...

HCONV hConv; // DDE 会话句柄
CONVINFO convInfo;

// 初始化 CONVINFO 结构体
convInfo.cb = sizeof(CONVINFO);

// 获取 DDE 会话信息
BOOL result = DdeQueryConvInfo(hConv, 0, &convInfo);
if (result) {
    // 使用 convInfo 结构体中的信息
    // ...
} else {
    // 处理获取会话信息失败的情况
}

在实际应用中,你可能需要根据具体的需求使用 CONVINFO 结构体中的字段信息。


转载请注明出处:http://www.zyzy.cn/article/detail/26497/Win32 API/Ddeml.h/CONVINFO