哪儿有可以跨网访问的dcom的小例题,同时提供源代码,一次性全给(客户端和服务器都要)
解决方案 »
- 自定义工具栏初始停靠位置问题
- 问题又来了~~~~~关于进程,高手来吧
- 如何开发这样的聊天程序
- 基于对话框的工程,已打开一幅图片显示在对话框上,如何在该图片上画图,在线等,谢!
- fatal error RC1015:cannot open include file 'afxres.h'
- 奇怪的问题((IF语句)
- 提个问题,不要晕到~!
- 能否用flashget下载.asp链接的文件
- "error C2653: 'Cxxxxxx' : is not a class or namespace name"是怎么回事儿?
- 请问关于图像边界的邻域处理方面的问题
- 请问,用VC建立一个Win32 Empty Project,如何在单文档界面中添加工具条???(最好不用MFC)
- 成功取到IHTMLDocument2指针后,利用该指针取网页内容时,此时网页关掉,则提示出错,有没有办法防止?
我这里有个很早以前做的Demo。
如果你需要,把EMail短消息给我。顺便写下调用代码:
void CInvokeCom01Dlg::OnButton2()
{
// TODO: Add your control notification handler code here
//组件库初始化
HRESULT hr = CoInitialize(NULL);
//安全代码初始化
hr = CoInitializeSecurity(
NULL,
-1,
NULL,
NULL,
RPC_C_AUTHN_LEVEL_DEFAULT, //代理的访问默认验证,这个和服务器端dcomcnfg配置时【默认属性】中【默认身份验证级别】所对应,例如:RPC_C_AUTHN_LEVEL_DEFAULT对应的是“默认值”,RPC_C_AUTHN_LEVEL_NONE对应的则是“无”
RPC_C_IMP_LEVEL_IDENTIFY, //代理扮演级别,和服务器端dcomcnfg配置时【默认属性】中【默认模拟级别】,对应的dcomcnfg配置图:
NULL,
0,
NULL
);
//创建对象实例,并返回IUnknown 指针
COSERVERINFO ServerInfo={0,L"Zidane",NULL,0};//组件服务器信息,”zht”为组件服务器的计算机名字
MULTI_QI MultiQi={&IID_IUnknown,NULL,NOERROR};
hr=CoCreateInstanceEx(CLSID_Obj01,NULL,CLSCTX_REMOTE_SERVER,&ServerInfo,1,&MultiQi);// CLSCTX_REMOTE_SERVER为远程进程外组件
IUnknown* pUnknown = (IUnknown*) MultiQi.pItf;// 得到IUnknown指针
//通过IUnkonwn指针去查询接口指针,返回IAccount指针
IObj01* pFoo = NULL;
hr = pUnknown->QueryInterface(IID_IObj01,(void**)&pFoo);
hr = CoCreateInstance(CLSID_Obj01, NULL, CLSCTX_INPROC_SERVER| CLSCTX_INPROC_HANDLER| CLSCTX_LOCAL_SERVER| CLSCTX_REMOTE_SERVER, IID_IObj01, (void**)&pFoo);
if (SUCCEEDED(hr) && (pFoo != NULL))
{
int num=1;
pFoo->changeInt(&num);
pFoo->Release();
CString s;
s.Format("The number is : %d",num);
MessageBox(s);
}
else
{
CString msg;
msg.Format("%ld",hr);
AfxMessageBox(msg);
}
//Iunknown接口释放
pUnknown->Release();
CoInitialize(NULL);
}
[email protected]