资源简介
这是我在用作调试DDE的一个程序,最开始时出现与Excel通讯不稳定的现象,这是最终稳定后的程序,如果你正在做DDE,我觉得还是值得参考的。

代码片段和文件信息
// DDEClient.cpp : Defines the entry point for the console application.
//
/*
示例 DDE 客户端
下面的示例使用 Excel 工作簿或 Word 文档的 DDE 主题。
对于 Excel,创建一个新的工作簿 (C:\Test.xls) 包含在单元格 A1 和 A2 中的数据。为 Word,创建新文档 (C:\Test.doc) 包含文本。在文档中文字的选择一些,但不是所有,并创建一个名为 MyBookmark 在该位置的书签。
在 Visual 的 c + + 中创建新 Win32 控制台应用程序名为“DDEClient“。
在应用程序向导,选择 A 简单应用程序,然后单击 完成。
用下列替换代码中 DDEClient.cpp:
使用以下 Word,替换 main 函数中的前 7 行:
char szApp[] = “WINWORD“;
char szTopic[] = “C:\\test.doc“;
char szCmd1[] = “[AppMinimize][EditGoTo Destination:=\“\\EndofDoc\“][InsertPara]“;
char szItem1[] = “\\Doc“; char szDesc1[] = “Document contains: \n“;
char szItem2[] = “MyBookmark“; char szDesc2[] = “MyBookmark contains: \n“;
char szItem3[] = “\\EndofDoc“; char szData3[] = “Data from DDE Client“;
char szCmd2[] = “[FileSave][FileExit(2)]“;
生成,然后运行该应用程序。
使用 Excel,DDE 客户端初始化 DDE 对话的工作簿文件 (C:\Test.xls) 使用的主题,并执行下列操作:
执行 APP.MINIMIZE 的命令。
申请项目 R1C1 和 R2C1 中的数据。请注意,Excel 要求请求项必须以 R1C1 表示法。
pokes R3C1 的数据。
在 $ 粗体中的格式设置 R3C1、 保存了的工作簿并退出 Excel。
使用 Word,DDE 客户端初始化 DDE 对话文档文件 (C:\Test.doc) 使用的主题,并执行下列操作:
执行命令最大限度地减少应用程序、 转到文档的结尾和插入一个新段落。
请求项“\Doc“检索整个文档的内容。请注意该 \Doc 是预定义的书签。
请求项以检索该文本在书签中的“MyBookmark“。
执行命令来保存文档并退出 Word。
*/
#include “stdafx.h“
#include “windows.h“
#include “ddeml.h“
#include “stdio.h“
HDDEDATA CALLBACK DdeCallback(
UINT uType // Transaction type.
UINT uFmt // Clipboard data format.
HCONV hconv // Handle to the conversation.
HSZ hsz1 // Handle to a string.
HSZ hsz2 // Handle to a string.
HDDEDATA hdata // Handle to a global memory object.
DWORD dwData1 // Transaction-specific data.
DWORD dwData2) // Transaction-specific data.
{
return 0;
}
void DDEExecute(DWORD idInst HCONV hConv char* szCommand)
{
HDDEDATA hData = DdeCreateDataHandle(idInst (LPBYTE)szCommand
lstrlen(szCommand)+1 0 NULL CF_TEXT 0);
if (hData==NULL) {
printf(“Command failed: %s\n“ szCommand);
}
else {
DdeClientTransaction((LPBYTE)hData 0xFFFFFFFF hConv 0L 0
XTYP_EXECUTE TIMEOUT_ASYNC NULL);
}
}
void DDERequest(DWORD idInst HCONV hConv char* szItem char* sDesc)
{
HSZ hszItem = DdeCreateStringHandle(idInst szItem 0);
HDDEDATA hData = DdeClientTransaction(NULL0hConvhszItemCF_TEXT
XTYP_REQUEST5000 NULL);
if (hData==NULL)
{
printf(“Request failed: %s\n“ szItem);
}
else
{
char szResult[255];
DdeGetData(hData (unsigned char *)szResult 255 0);
printf(“%s%s\n“ sDesc szResult);
}
}
void DDEPoke(DWORD idInst HCONV hConv char* szItem char* szData)
{
HSZ hszItem = DdeCreateStringHandle(idInst szItem 0);
DdeClientTransaction((LPBYTE)szData (DWORD)(lstrlen(szData)+1)
hConv hszItem
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5548 2010-03-17 18:25 DDEClient(一个DDE和EXcel进行通讯的例子)\DDEClient.cpp
文件 4572 2010-03-17 15:05 DDEClient(一个DDE和EXcel进行通讯的例子)\DDEClient.dsp
文件 526 2010-03-17 15:05 DDEClient(一个DDE和EXcel进行通讯的例子)\DDEClient.dsw
文件 41984 2010-03-17 18:48 DDEClient(一个DDE和EXcel进行通讯的例子)\DDEClient.ncb
文件 48640 2010-03-17 18:48 DDEClient(一个DDE和EXcel进行通讯的例子)\DDEClient.opt
文件 1352 2010-03-17 18:25 DDEClient(一个DDE和EXcel进行通讯的例子)\DDEClient.plg
文件 172122 2010-03-17 18:25 DDEClient(一个DDE和EXcel进行通讯的例子)\Debug\DDEClient.exe
文件 196504 2010-03-17 18:25 DDEClient(一个DDE和EXcel进行通讯的例子)\Debug\DDEClient.ilk
文件 51314 2010-03-17 18:25 DDEClient(一个DDE和EXcel进行通讯的例子)\Debug\DDEClient.obj
文件 187056 2010-03-17 15:08 DDEClient(一个DDE和EXcel进行通讯的例子)\Debug\DDEClient.pch
文件 435200 2010-03-17 18:25 DDEClient(一个DDE和EXcel进行通讯的例子)\Debug\DDEClient.pdb
文件 1894 2010-03-17 15:08 DDEClient(一个DDE和EXcel进行通讯的例子)\Debug\StdAfx.obj
文件 132096 2010-03-17 18:25 DDEClient(一个DDE和EXcel进行通讯的例子)\Debug\vc60.idb
文件 233472 2010-03-17 18:25 DDEClient(一个DDE和EXcel进行通讯的例子)\Debug\vc60.pdb
文件 1226 2010-03-17 15:05 DDEClient(一个DDE和EXcel进行通讯的例子)\ReadMe.txt
文件 296 2010-03-17 15:05 DDEClient(一个DDE和EXcel进行通讯的例子)\StdAfx.cpp
文件 667 2010-03-17 15:05 DDEClient(一个DDE和EXcel进行通讯的例子)\StdAfx.h
目录 0 2010-03-17 18:25 DDEClient(一个DDE和EXcel进行通讯的例子)\Debug
目录 0 2010-03-17 18:48 DDEClient(一个DDE和EXcel进行通讯的例子)
----------- --------- ---------- ----- ----
1514469 19
- 上一篇:0-10V模拟量调光实现方法介绍
- 下一篇:IEEE32位浮点数转换工具含源码
相关资源
-
Windows em
bedded Compact 2013 应用开发调 - 先进先出库存管理excel表格.rar
- [免费]强大的OFFICE经验(Word Excel)
- ICD10 excel
-
分别适用于.NET fr
amework 2.0和4.0的E - K码和经纬度转换excel表格
- Php 导出数据为EXCEL程序
- 项目周报格式(excel格式报表)
- 一个基于MFC的GridCtrl,提供类似Excel的
- EXCEL横转竖(列转行)宏
- Excel高效办公实例
- 湖南省计算机等级二级考试excel题集锦
- EXCEL文件转换成固定的格式的文本格式
- 从EXCEL中取数据在Teechart7显示应用示例
- excel VBA 800(全)
- 易语言Excel多表对应处理源码
- 易语言EXCEL另存为CSV文件源码
-
VESA eDP_v1_3 (em
bedded displayPort Stand -
VESA eDP_v1_3 (em
bedded displayPort Stand - EXCEL函数手册.chm格式
- Excel修复精灵中文免费版2009
- DataNumen Excel Repair Excel文件修复工具
- vue实现导出Excel的两个js文件-Blob+Exp
- Blob.js+Export2Excel.js
- LibXL for Windows 3.8.3 最新版Excel操作库带
- EXCEL 甘特图模板
- 项目开发计划与跟踪汇总表模板
- 中文版excel2007 图表宝典(光盘附件)
- 嵌入式工程师周报 项目管理 甘特图
- Ubuntu下操作Excel,qt代码
评论
共有 条评论