OLD | NEW |
1 // Copyright 2007 Igor Tandetnik | 1 // Copyright 2007 Igor Tandetnik |
2 // | 2 // |
3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
6 // | 6 // |
7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
8 // | 8 // |
9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 CComPtr<IInternetProtocol> m_spInternetProtocol; | 242 CComPtr<IInternetProtocol> m_spInternetProtocol; |
243 CComPtr<IInternetProtocolInfo> m_spInternetProtocolInfo; | 243 CComPtr<IInternetProtocolInfo> m_spInternetProtocolInfo; |
244 CComPtr<IInternetPriority> m_spInternetPriority; | 244 CComPtr<IInternetPriority> m_spInternetPriority; |
245 CComPtr<IInternetThreadSwitch> m_spInternetThreadSwitch; | 245 CComPtr<IInternetThreadSwitch> m_spInternetThreadSwitch; |
246 CComPtr<IWinInetInfo> m_spWinInetInfo; | 246 CComPtr<IWinInetInfo> m_spWinInetInfo; |
247 CComPtr<IWinInetHttpInfo> m_spWinInetHttpInfo; | 247 CComPtr<IWinInetHttpInfo> m_spWinInetHttpInfo; |
248 }; | 248 }; |
249 | 249 |
250 class ATL_NO_VTABLE IInternetProtocolSinkImpl : | 250 class ATL_NO_VTABLE IInternetProtocolSinkImpl : |
251 public IInternetProtocolSink, | 251 public IInternetProtocolSink, |
252 public IServiceProvider, | 252 public IServiceProvider |
253 public IInternetBindInfo | |
254 { | 253 { |
255 public: | 254 public: |
256 HRESULT OnStart(LPCWSTR szUrl, IInternetProtocolSink *pOIProtSink, | 255 HRESULT OnStart(LPCWSTR szUrl, IInternetProtocolSink *pOIProtSink, |
257 IInternetBindInfo *pOIBindInfo, DWORD grfPI, DWORD dwReserved, | 256 IInternetBindInfo *pOIBindInfo, DWORD grfPI, DWORD dwReserved, |
258 IInternetProtocol* pTargetProtocol); | 257 IInternetProtocol* pTargetProtocol); |
259 void ReleaseAll(); | 258 void ReleaseAll(); |
260 | 259 |
261 DECLARE_GET_TARGET_UNKNOWN(m_spInternetProtocolSink) | 260 DECLARE_GET_TARGET_UNKNOWN(m_spInternetProtocolSink) |
262 | 261 |
263 IServiceProvider* GetClientServiceProvider(); | 262 IServiceProvider* GetClientServiceProvider(); |
(...skipping 30 matching lines...) Expand all Loading... |
294 /* [in] */ HRESULT hrResult, | 293 /* [in] */ HRESULT hrResult, |
295 /* [in] */ DWORD dwError, | 294 /* [in] */ DWORD dwError, |
296 /* [in] */ LPCWSTR szResult); | 295 /* [in] */ LPCWSTR szResult); |
297 | 296 |
298 // IServiceProvider | 297 // IServiceProvider |
299 STDMETHODIMP QueryService( | 298 STDMETHODIMP QueryService( |
300 /* [in] */ REFGUID guidService, | 299 /* [in] */ REFGUID guidService, |
301 /* [in] */ REFIID riid, | 300 /* [in] */ REFIID riid, |
302 /* [out] */ void** ppvObject); | 301 /* [out] */ void** ppvObject); |
303 | 302 |
304 // IInternetBindInfo | |
305 STDMETHODIMP GetBindInfo( | |
306 /* [out] */ DWORD *grfBINDF, | |
307 /* [in, out] */ BINDINFO *pbindinfo); | |
308 | |
309 STDMETHODIMP GetBindString( | |
310 /* [in] */ ULONG ulStringType, | |
311 /* [in, out] */ LPOLESTR *ppwzStr, | |
312 /* [in] */ ULONG cEl, | |
313 /* [in, out] */ ULONG *pcElFetched); | |
314 public: | 303 public: |
315 CComPtr<IInternetProtocolSink> m_spInternetProtocolSink; | 304 CComPtr<IInternetProtocolSink> m_spInternetProtocolSink; |
316 CComPtr<IServiceProvider> m_spServiceProvider; | 305 CComPtr<IServiceProvider> m_spServiceProvider; |
317 CComPtr<IInternetBindInfo> m_spInternetBindInfo; | |
318 | |
319 CComPtr<IInternetProtocol> m_spTargetProtocol; | 306 CComPtr<IInternetProtocol> m_spTargetProtocol; |
320 }; | 307 }; |
321 | 308 |
322 template <class ThreadModel = CComSingleThreadModel> | 309 template <class ThreadModel = CComSingleThreadModel> |
323 class CInternetProtocolSinkTM : | 310 class CInternetProtocolSinkTM : |
324 public CComObjectRootEx<ThreadModel>, | 311 public CComObjectRootEx<ThreadModel>, |
325 public IInternetProtocolSinkImpl | 312 public IInternetProtocolSinkImpl |
326 { | 313 { |
327 public: | 314 public: |
328 BEGIN_COM_MAP(CInternetProtocolSinkTM) | 315 BEGIN_COM_MAP(CInternetProtocolSinkTM) |
329 COM_INTERFACE_ENTRY(IInternetProtocolSink) | 316 COM_INTERFACE_ENTRY(IInternetProtocolSink) |
330 COM_INTERFACE_ENTRY_PASSTHROUGH(IServiceProvider, | 317 COM_INTERFACE_ENTRY_PASSTHROUGH(IServiceProvider, |
331 m_spServiceProvider.p) | 318 m_spServiceProvider.p) |
332 COM_INTERFACE_ENTRY(IInternetBindInfo) | |
333 COM_INTERFACE_ENTRY_PASSTHROUGH_DEBUG() | 319 COM_INTERFACE_ENTRY_PASSTHROUGH_DEBUG() |
334 END_COM_MAP() | 320 END_COM_MAP() |
335 }; | 321 }; |
336 | 322 |
337 typedef CInternetProtocolSinkTM<> CInternetProtocolSink; | 323 typedef CInternetProtocolSinkTM<> CInternetProtocolSink; |
338 | 324 |
339 template <class T, class ThreadModel = CComSingleThreadModel> | 325 template <class T, class ThreadModel = CComSingleThreadModel> |
340 class CInternetProtocolSinkWithSP : | 326 class CInternetProtocolSinkWithSP : |
341 public CInternetProtocolSinkTM<ThreadModel> | 327 public CInternetProtocolSinkTM<ThreadModel> |
342 { | 328 { |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
454 IInternetBindInfo *pOIBindInfo, DWORD grfPI, HANDLE_PTR dwReserved); | 440 IInternetBindInfo *pOIBindInfo, DWORD grfPI, HANDLE_PTR dwReserved); |
455 | 441 |
456 STDMETHODIMP Read( /* [in, out] */ void *pv,/* [in] */ ULONG cb,/* [out] */
ULONG *pcbRead); | 442 STDMETHODIMP Read( /* [in, out] */ void *pv,/* [in] */ ULONG cb,/* [out] */
ULONG *pcbRead); |
457 }; | 443 }; |
458 | 444 |
459 } // end namespace PassthroughAPP | 445 } // end namespace PassthroughAPP |
460 | 446 |
461 #include "ProtocolImpl.inl" | 447 #include "ProtocolImpl.inl" |
462 | 448 |
463 #endif // PASSTHROUGHAPP_PROTOCOLIMPL_H | 449 #endif // PASSTHROUGHAPP_PROTOCOLIMPL_H |
OLD | NEW |