2013-11-29 2 views
0

Я предполагаю, что это где-то в winhttp.dll, но я не могу найти ссылку на него, сбросив DLL с помощью bindump. У кого-нибудь есть предложения о том, как я могу найти индекс vtable метода?Как найти индекс vtable метода на интерфейсе IWinHttpRequest?

+0

Возможный дубликат [Найти индекс конкретной функции в Vtable интерфейса COM] (http://stackoverflow.com/questions/9958962/find-index-of-particular-function-in-com-interfaces-vtable) –

ответ

2

Информация находится в файле IDL, httprequest.idl.

interface IWinHttpRequest : IDispatch 
{ 
    [id(DISPID_HTTPREQUEST_SETPROXY), helpstring("Specify proxy configuration")] 
    HRESULT SetProxy([in] HTTPREQUEST_PROXY_SETTING ProxySetting, 
        [in, optional] VARIANT ProxyServer, 
        [in, optional] VARIANT BypassList); 

    [id(DISPID_HTTPREQUEST_SETCREDENTIALS), helpstring("Specify authentication credentials")] 
    HRESULT SetCredentials([in] BSTR UserName, 
        [in] BSTR Password, 
     [in] HTTPREQUEST_SETCREDENTIALS_FLAGS Flags); 

    .... 

Из этого вы можете ознакомиться с индексами метода. Это немного сложно, потому что вам сначала нужно подсчитать индексы метода базового интерфейса IDispatch.

// IUnknown 
0: QueryInterface 
1: AddRef 
2: Release 
// IDispatch 
3: GetTypeInfoCount 
4: GetTypeInfo 
5: GetIDsOfNames 
6: Invoke 
// IWinHttpRequest 
7: SetProxy 
8: SetCredentials 
... etc. ... 

Вы можете удалить скуку на using theoffsetof macro.

Смежные вопросы