请问用ATL做的ActiveX控件,可以嵌入word里面,如何获Word的Application的指针?100分啊

littleroy 2005-11-29 01:36:32
请问用ATL做的ActiveX控件,可以嵌入word里面,如何获Word的Application的指针?100分啊

我听说可以用GetClientSite的方式,
但,不知道,具体详细情况该怎么做,,

高手指点!
...全文
262 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodboyws 2005-12-01
  • 打赏
  • 举报
回复
http://support.microsoft.com/kb/190985/EN-US/
littleroy 2005-11-29
  • 打赏
  • 举报
回复
to goodboyws(深夜不眠者

的代码,我看不懂啊,
能不能详细介绍一下呢,,
littleroy 2005-11-29
  • 打赏
  • 举报
回复
to zhoujingsheng712

您的代码,我一回拿过去试一下,谢谢!!
不过,我更想要的是,我的控件是嵌入在word里面,如何通过GetClientSite函数的方式,
来获包容器的指针!
goodboyws 2005-11-29
  • 打赏
  • 举报
回复
http://support.microsoft.com/kb/q266318/
goodboyws 2005-11-29
  • 打赏
  • 举报
回复
void CMyActiveXCtrl::GettheNameofContainerDocument()
{
IMoniker* ptrfullMoniker = NULL;
char objectname[300];
LPOLESTR ppszDisplaynamefull;
IBindCtx* pbcfull = NULL;

LPOLECLIENTSITE pOleClientSite = GetClientSite();

if(pOleClientSite)
{
if(SUCCEEDED(pOleClientSite->GetMoniker(OLEGETMONIKER_FORCEASSIGN,
OLEWHICHMK_OBJFULL, &ptrfullMoniker)))<BR/>
// The typedefs for OLEGETMONIKER and OLWHICHMK are in oleidl.h
{
if (SUCCEEDED(CreateBindCtx( 0, &pbcfull )))
{
if(SUCCEEDED(ptrfullMoniker->GetDisplayName(pbcfull,NULL,<BR/>
&ppszDisplaynamefull)))
{
wcstombs(objectname,ppszDisplaynamefull,300);
AfxMessageBox(ExtractDocumentName(objectname));
ptrfullMoniker->Release();
}
}
pbcfull->Release();
}
pOleClientSite->Release();
}
}

char* CMyActiveXCtrl::ExtractDocumentName(char* objectname)
{
char* ptrchar;
char* ptrdocname;
//reverse the string
ptrchar = _strrev(objectname);
//Ignore the first token , this is the name of the embedded object
strtok(ptrchar,"!");
//get the remainder of the string and reverse it to get the Document name
ptrdocname = strrev(strtok(NULL,"\0"));
return ptrdocname;
}
zhoujingsheng712 2005-11-29
  • 打赏
  • 举报
回复
先导入word类库:在addclass-〉from a library->word安装目录中选msword.olb
,然后添加如下代码
CLSID clsid;
HRESULT hr;
IUnknown *pUnknown=NULL;
IDispatch *pDispatch=NULL;
_Application app=NULL;
hr = ::CLSIDFromProgID(L"Word.Application",&clsid); //通过ProgID取得CLSID
if(FAILED(hr))
{
AfxMessageBox(_T("您没有安装OFFICE"));
return;
}

hr = ::GetActiveObject(clsid,NULL,&pUnknown); //查找是否有WORD程序在运行
if(FAILED(hr))
{
AfxMessageBox(_T("没有正在运行中的WORD应用程序"));
return;
}

hr = pUnknown->QueryInterface(IID_IDispatch,(LPVOID *)&app);
if(FAILED(hr)) AfxMessageBox(_T("没有取得IDispatchPtr"));
pUnknown->Release(); pUnknown=NULL;
littleroy 2005-11-29
  • 打赏
  • 举报
回复
up
littleroy 2005-11-29
  • 打赏
  • 举报
回复
up
我们把同一标的(昆仑万维,现价 43.20 元,2026-07-31 收盘)交给三套系统,各出一份独立析: **C 报告(CoordClaw 基于管理学多智能体系统)**——投研级。它由五个角色构成:周婷整合撰写、李静出基本面、王芳出技术面、赵明出风险、陈默 PM 终审。最终产物是一份 38 项级风险清单(P0×4 / P1×12 / P2×12 / P3×6 / 尾部×4)、双源交叉验证的财务数据(EM/Sina 差异 <0.01%)、严格的口径纪律,以及一份原样保留的"待核实"清单。结论冷冰冰:高风险,不建议参与。 **D 报告(DeepSeek)**——信息整理级。它把"4+3 AGI 战略"、天工 AI、Opera 浏览器、StarMaker 拆得很漂亮,核心财务数据(营收 81.98 亿、归母 -15.93 亿)也没算错。但整篇没有技术面、没有量化风控,更关键的是——它完全没提实控人已减持 75%、质押状态未知、净现金仅 15.19 亿且续航只有 1.26~1.81 年这些要命的负面。这是典型的"选择性呈现"。 **K 报告(Kimi)**——以对比评估的方式呈现。它搭起"数据准确性 / 析维度 / 结论合理性"的三维框架,把几份材料放在一起对照,给出各自的强弱判定。它的维度意识比 D 报告更自觉,但作为一份独立析,它对"评估方法本身的信度"交待不足,部引用的核对也不够彻底。 结果两家的结论高度一致。C 报告(多智能体)被评投研级、居首;D 报告(DeepSeek 自己写的)被评信息整理级、居中;K 报告(Kimi 自己那份)维度较全但核验深度有限,排在两者之间。DeepSeek 的那份评估把 C 给了五星、D 三星、K 四星;Kimi 的那份评估也独立地把最高给了 C。
问题现象 - 同一张 TF 卡/SD 卡在其他电脑上能正常识别,插到本机却只"响一声",资源管理器里不显示盘符; - 磁盘管理里能看到磁盘,但显示为灰色 / RAW / 无盘符; - 插入 U 盘、读卡器后偶尔能显示,重启或更换卡片后又消失; - 使用 diskpart、mountvol 等命令时系统卡住无响应。 ## 问题根源 经排查,这类问题通常不是 TF 卡损坏,而是 Windows 存储子系统与本机读卡器/驱动之间的兼容性故障,主要包括: 1. **盘符未配** —— 卷已被系统识别,但没有挂载点,因此资源管理器不显示; 2. **USB 幽灵设备残留** —— 系统里残留 `Disconnected` 状态的 USBSTOR 设备记录,阻塞新设备枚举; 3. **USB 选择性暂停(Selective Suspend)** —— Windows 空闲时给读卡器断电,导致识别不稳定; 4. **automount 被关闭或失效** —— 新插入的卷无法自动配盘符; 5. **存储堆栈挂起** —— 残留的 diskpart 进程锁死存储服务。 ## 解决方案(一键永久修复) 本项目是一个 **Codex Skill + 一键安装器**,自动完成以下修复: - 启用系统自动挂载(automount enable / scrub) - 清理 Disconnected 幽灵 USB 设备 - 永久禁用 USB 选择性暂停(防读卡器被断电) - 自动为所有无盘符的可移动卷配盘符 - 注册**开机守护任务**:每次开机自动执行以上修复,彻底告别手动操作 ## 使用方法 ```powershell # 在其他电脑上(Windows 10/11): # 1. 下载本项目 # 2. 右键 install.bat → 以管理员身份运行(或直接双击后点"是")

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧