COM进程外服务器实现 QueryInterface时,这样的代码为什么不行?
2006-07-14 15:44
295 查看
2006-7-14: COM进程外服务器实现 QueryInterface时,这样的代码为什么不行?
HRESULT QueryInterface( REFIID riid, void **ppv) {
.....
if( riid == MYIID1 || riid== MYIID2 .... ) { // MYIIDX 是该对象实现的接口
*ppv= this; ////1
}
.....
}
客户QueryInterface成功后却无法调用MYIIDX的方法。这样写才可以:
HRESULT QueryInterface( REFIID riid, void **ppv) {
..... if( riid == MYIID1 ) {
*ppv= (MY_IID1*) this;
} else if( riid == MYIID2 ) {
*ppv= (MY_IID2*) this;
}
.....
(MY_IIDX*) this,这个转换到底起什么作用呢?我试了一下,如果不是COM,在一个程序内是没有什么作用的。
<html>
2006-7-14: COM进程外服务器实现 QueryInterface时,这样的代码为什么不行?
HRESULT QueryInterface( REFIID riid, void **ppv) {
.....
if( riid == MYIID1 || riid== MYIID2 .... ) { // MYIIDX 是该对象实现的接口
*ppv= this; ////1
}
.....
}
客户QueryInterface成功后却无法调用MYIIDX的方法。这样写才可以:
HRESULT QueryInterface( REFIID riid, void **ppv) {
..... if( riid == MYIID1 ) {
*ppv= (MY_IID1*) this;
} else if( riid == MYIID2 ) {
*ppv= (MY_IID2*) this;
}
.....
(MY_IIDX*) this,这个转换到底起什么作用呢?我试了一下,如果不是COM,在一个程序内是没有什么作用的。
<html>
HRESULT QueryInterface( REFIID riid, void **ppv) {
.....
if( riid == MYIID1 || riid== MYIID2 .... ) { // MYIIDX 是该对象实现的接口
*ppv= this; ////1
}
.....
}
客户QueryInterface成功后却无法调用MYIIDX的方法。这样写才可以:
HRESULT QueryInterface( REFIID riid, void **ppv) {
..... if( riid == MYIID1 ) {
*ppv= (MY_IID1*) this;
} else if( riid == MYIID2 ) {
*ppv= (MY_IID2*) this;
}
.....
(MY_IIDX*) this,这个转换到底起什么作用呢?我试了一下,如果不是COM,在一个程序内是没有什么作用的。
<html>
2006-7-14: COM进程外服务器实现 QueryInterface时,这样的代码为什么不行?
HRESULT QueryInterface( REFIID riid, void **ppv) {
.....
if( riid == MYIID1 || riid== MYIID2 .... ) { // MYIIDX 是该对象实现的接口
*ppv= this; ////1
}
.....
}
客户QueryInterface成功后却无法调用MYIIDX的方法。这样写才可以:
HRESULT QueryInterface( REFIID riid, void **ppv) {
..... if( riid == MYIID1 ) {
*ppv= (MY_IID1*) this;
} else if( riid == MYIID2 ) {
*ppv= (MY_IID2*) this;
}
.....
(MY_IIDX*) this,这个转换到底起什么作用呢?我试了一下,如果不是COM,在一个程序内是没有什么作用的。
<html>
相关文章推荐
- .Net下进程外COM服务器的实现
- 点击一个按钮实现在不同对话框之间的切换,帮忙看下这代码能不能这样写,为什么不对呀
- .Net下进程外COM服务器的实现
- 协程写作方式实现的单进程 单线程 多协程的http(其实是tcp啦)服务器,实测性能和workerman相差不远(当然稳定性没法比), 基本每行代码都有中文注释~~呲牙呲牙呲牙 没办法用作生产环境
- .Net下进程外COM服务器的实现(转)
- PHP实现Socket服务器的代码
- 第23章 COM和ActiveX(COM可以实现跨进程跨机器的函数调用)
- 服务器日志里面为什么有bsalsa.com?bsalsa.com是什么?
- ★实验 9-2 1. 补全代码,实现以下功能 a) 调用pipe()创建无名管道 b) 调用fork创建一个子进程 c) 在父进程中向管道写入 “helloworld”, 同时打印出PID和写入
- 100多行PHP代码实现socks5代理服务器[2]
- 并发服务器的实现(进程与线程)
- TCP代理的python实现(包括客户端/服务器/TCP代理三部分代码)
- Linux实现文件上传ftp服务器脚本代码
- pthon代码实现在linux下对siebel服务器换包重启
- C#采用Remoting实现跨进程调用之代码实例
- 单进程多线程并发服务器实现
- windows wininet api 实现下载web服务器文件(l历史代码,贴出共享)
- 为什么C++编译器不支持模板头文件和实现代码分离的编译
- 微软实现的获取进程主窗口句柄代码
- 基于jquery实现的服务器验证控件的启用和禁用代码