diff options
Diffstat (limited to 'Src/Winamp/jnetcom.h')
-rw-r--r-- | Src/Winamp/jnetcom.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/Src/Winamp/jnetcom.h b/Src/Winamp/jnetcom.h new file mode 100644 index 00000000..aa2e357e --- /dev/null +++ b/Src/Winamp/jnetcom.h @@ -0,0 +1,77 @@ +#pragma once +#include <ocidl.h> +#include "..\Components\wac_network\wac_network_http_receiver_api.h" +#include "api.h" + + +class JNetCOM : public IDispatch, public ifc_downloadManagerCallback +{ +public: + JNetCOM(IDispatch *_dispatch); + ~JNetCOM(); + STDMETHOD(QueryInterface)(REFIID riid, PVOID *ppvObject); + STDMETHOD_(ULONG, AddRef)(void); + STDMETHOD_(ULONG, Release)(void); + // *** IDispatch Methods *** + STDMETHOD (GetIDsOfNames)(REFIID riid, OLECHAR FAR* FAR* rgszNames, unsigned int cNames, LCID lcid, DISPID FAR* rgdispid); + STDMETHOD (GetTypeInfo)(unsigned int itinfo, LCID lcid, ITypeInfo FAR* FAR* pptinfo); + STDMETHOD (GetTypeInfoCount)(unsigned int FAR * pctinfo); + STDMETHOD (Invoke)(DISPID dispid, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS FAR *pdispparams, VARIANT FAR *pvarResult, EXCEPINFO FAR * pexecinfo, unsigned int FAR *puArgErr); + + STDMETHOD (Abort)(); + STDMETHOD (AddHeader)(LPCWSTR header); + STDMETHOD (Connect)(LPCWSTR url, LPCWSTR requestMethod); + STDMETHOD (GetContent)(VARIANT *variant); + STDMETHOD (GetContentAsString)(VARIANT *variant); + STDMETHOD (GetErrorString)(VARIANT *variant); + STDMETHOD (GetHeader)(LPCWSTR header, VARIANT *variant); + STDMETHOD (GetReply)(VARIANT *variant); + STDMETHOD (GetReplyCode)(VARIANT *variant); + STDMETHOD (GetUrl)(VARIANT *variant); + + /* Dispatchable */ + size_t Dispatchable_AddRef(); + size_t Dispatchable_Release(); + + void OnFinish(DownloadToken token); + void OnTick(DownloadToken token); + void OnError(DownloadToken token, int error); + void OnCancel(DownloadToken token); + void OnConnect(DownloadToken token); + void OnInit(DownloadToken token); + + void Call(PAPCFUNC func); + /* + methods: + Abort + AddHeader (only call this during OnInit) + Connect (here is where you specify the URL) + GetContent + GetContentAsString + GetErrorString + GetHeader + GetReply + GetReplyCode + GetUrl (may not be the same as what you originally connected because of redirection) + SetPostString (only call this during OnInit) + + callback methods in YOUR object: + OnCancel + OnConnect + OnError + OnFinish + OnTick (called every once in a while) + OnInit (called immediately after Connect(), you can add headers and shit here + + */ + +private: + LONG refCount; + DWORD threadId; + HANDLE threadHandle; + IDispatch *dispatch; + DownloadToken token; + bool retained; +protected: + RECVS_DISPATCH; +};
\ No newline at end of file |