com 名字对象(1)IBindCtx
2011-07-26 20:30 Clingingboy 阅读(960) 评论(0) 编辑 收藏 举报
一.IBindCtx
Provides access to a bind context, which is an object that stores information about a particular moniker binding operation.
How to create
IBindCtx* bindCtx=NULL;
CreateBindCtx(0,&bindCtx);
二.object active status
1.RegisterObjectBound
Registers an object with the bind context to ensure that the object remains active until the bind context is released.
IBindCtx* bindCtx=NULL;
CreateBindCtx(0,&bindCtx);
HRESULT hr;
IUnknown* pUnk = NULL;
hr = CoCreateInstance(CLSID_DuckDoer, NULL, CLSCTX_LOCAL_SERVER, IID_IUnknown, (void**)&pUnk);
bindCtx->RegisterObjectBound(pUnk);
//still alive
pUnk->Release();
//real release
pUnk->Release();
2.RevokeObjectBound
Removes the object from the bind context, undoing a previous call to RegisterObjectBound.
bindCtx->RegisterObjectBound(pUnk);
bindCtx->RevokeObjectBound(pUnk);
//release
pUnk->Release();
//pUnk->AddRef()
bindCtx->RegisterObjectBound(pUnk);
//still release
pUnk->Release();
//real release==pUnk->Release();
bindCtx->RevokeObjectBound(pUnk);
3.ReleaseBoundObjects
Releases all pointers to all objects that were previously registered by calls to RegisterObjectBound.
4.ObjectParam
- RegisterObjectParam Associates an object with a string key in the bind context's string-keyed table of pointers.
- GetObjectParam Retrieves an interface pointer to the object associated with the specified key in the bind context's string-keyed table of pointers
- RevokeObjectParam Removes the specified key and its associated pointer from the bind context's string-keyed table of objects
- EnumObjectParam Retrieves a pointer to an interface that can be used to enumerate the keys of the bind context's string-keyed table of pointers
bindCtx->RegisterObjectParam(OLESTR("testKey"),pUnk);
IUnknown* pUnk2 = NULL;
bindCtx->GetObjectParam(OLESTR("testKey"),&pUnk2);
5.Options
- SetBindOptions Sets new values for the binding parameters stored in the bind context.
- GetBindOptions
6.com memory
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现