URLMoniker用法
来源:互联网 发布:acrobat xi mac 破解 编辑:程序博客网 时间:2024/06/01 09:36
// ConsoleApplication7.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#pragma comment (lib, "urlmon.lib")class CMarshaller2 : public IBindStatusCallback{LONG _ref_count;public:CMarshaller2() : _ref_count(1){}~CMarshaller2() {}STDMETHOD(OnStartBinding)(DWORD dwReserved,IBinding __RPC_FAR *pib){return S_OK;;}STDMETHOD(GetPriority)(LONG __RPC_FAR *pnPriority){return S_OK;;}STDMETHOD(OnLowResource)(DWORD reserved){return S_OK;;}STDMETHOD(OnProgress)(ULONG ulProgress,ULONG ulProgressMax,ULONG ulStatusCode,LPCWSTR wszStatusText){return S_OK;;}STDMETHOD(OnStopBinding)(HRESULT hresult,LPCWSTR szError){return S_OK;;}STDMETHOD(GetBindInfo)(DWORD __RPC_FAR *pgrfBINDF,BINDINFO __RPC_FAR *pbindInfo){//*pgrfBINDF = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_GETNEWESTVERSION; // bind asynchronously//pbindInfo->cbSize = sizeof(BINDINFO);//pbindInfo->szExtraInfo = NULL;//memset(&pbindInfo->stgmedData, 0, sizeof(STGMEDIUM));//pbindInfo->grfBindInfoF = 0;//pbindInfo->dwBindVerb = BINDVERB_GET;//pbindInfo->szCustomVerb = NULL;return S_OK;}STDMETHOD(OnDataAvailable)(DWORD grfBSCF,DWORD dwSize,FORMATETC __RPC_FAR *pformatetc,STGMEDIUM __RPC_FAR *pstgmed){return S_OK;;}STDMETHOD(OnObjectAvailable)(REFIID riid,IUnknown __RPC_FAR *punk){return S_OK;;}STDMETHOD_(ULONG, AddRef)(){return InterlockedIncrement(&_ref_count);}STDMETHOD_(ULONG, Release)(){printf("Release: %d\n", _ref_count);ULONG ret = InterlockedDecrement(&_ref_count);if (ret == 0){printf("Release object %p\n", this);delete this;}return ret;}STDMETHOD(QueryInterface)(REFIID riid,void __RPC_FAR *__RPC_FAR *ppv){*ppv = NULL;if (riid == IID_IUnknown || riid == IID_IBindStatusCallback){*ppv = this;AddRef();return S_OK;}return E_NOINTERFACE;}};int wmain(int argc, wchar_t** argv){IMoniker* pMoniker;CMarshaller2* pBSC = new CMarshaller2();CLSID iid = IID_IStream;IStream* pStream = nullptr;HRESULT hResult;IBindCtx* pNewBindCtx=nullptr;hResult = CreateURLMoniker(NULL, L"http://localhost:50001/Index.html", &pMoniker);if (FAILED(hResult)){return(hResult);}hResult = CreateBindCtx(0, &pNewBindCtx);if (FAILED(hResult)){return(hResult);}//向绑定环境注册一个回调接口IBindStatusCallback,CCuteMoniker派生自接口IBindStatusCallback。hResult = RegisterBindStatusCallback(pNewBindCtx, static_cast<IBindStatusCallback*>(pBSC), 0, 0L);if (FAILED(hResult)){return(hResult);}hResult = pMoniker->BindToStorage(pNewBindCtx, 0, IID_IStream, (void**)&pStream);if (FAILED(hResult)){return(hResult);}return hResult;}
阅读全文
0 0
- URLMoniker用法
- 用法
- ,, 用法
- 用法
- 用法
- #用法
- ??用法
- !!用法
- CustDialog用法 SimpleAdapter 用法
- hibernate_Restrictions用法 hibernate_Restrictions用法
- extern用法+assert用法
- getParameterValues用法
- rpm用法
- Log4j用法
- NameSpace用法
- sp_executesql 用法
- ShellExecute用法
- getParameterValues用法
- 在EmEditor上编译并运行JAVA
- date命令使用总结
- KMP——理论知识
- AngularsJS循环
- java Hashmap
- URLMoniker用法
- 【Python】在Mac系统中安装Pygame
- 简析htnl、css、JavaScript之间的关系
- mysql 多个字段拼接
- springboot集成swagger2
- (HDU
- 提高 Java 代码性能的各种技巧
- 深度解读数组操作
- Android 跳转界面 自动弹出输入框