aboutsummaryrefslogtreecommitdiff
path: root/Src/ie_plugin/Winamp.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/ie_plugin/Winamp.h')
-rw-r--r--Src/ie_plugin/Winamp.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/Src/ie_plugin/Winamp.h b/Src/ie_plugin/Winamp.h
new file mode 100644
index 00000000..87ff281a
--- /dev/null
+++ b/Src/ie_plugin/Winamp.h
@@ -0,0 +1,89 @@
+#pragma once
+#include <ocidl.h>
+#include <exdisp.h>
+#include <objsafe.h>
+
+class Winamp : public IObjectWithSite,
+ public IDispatch,
+ public IOleObject,
+ public IPersistStorage,
+ public IDataObject,
+ public IObjectSafety
+{
+public:
+ Winamp();
+ /* IUnknown */
+ HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void __RPC_FAR *__RPC_FAR *ppvObject);
+ ULONG STDMETHODCALLTYPE AddRef(void);
+ ULONG STDMETHODCALLTYPE 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);
+
+ /* IOleObject */
+ HRESULT STDMETHODCALLTYPE SetClientSite(IOleClientSite *pClientSite);
+ HRESULT STDMETHODCALLTYPE GetClientSite(IOleClientSite **ppClientSite);
+ HRESULT STDMETHODCALLTYPE SetHostNames(LPCOLESTR szContainerApp,LPCOLESTR szContainerObj);
+ HRESULT STDMETHODCALLTYPE Close(DWORD dwSaveOption);
+ HRESULT STDMETHODCALLTYPE SetMoniker(DWORD dwWhichMoniker,IMoniker *pmk);
+ HRESULT STDMETHODCALLTYPE GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker,IMoniker **ppmk);
+ HRESULT STDMETHODCALLTYPE InitFromData(IDataObject *pDataObject,BOOL fCreation,DWORD dwReserved);
+ HRESULT STDMETHODCALLTYPE GetClipboardData(DWORD dwReserved,IDataObject **ppDataObject);
+ HRESULT STDMETHODCALLTYPE DoVerb(LONG iVerb,LPMSG lpmsg,IOleClientSite *pActiveSite,LONG lindex, HWND hwndParent, LPCRECT lprcPosRect);
+ HRESULT STDMETHODCALLTYPE EnumVerbs(IEnumOLEVERB **ppEnumOleVerb);
+ HRESULT STDMETHODCALLTYPE Update(void);
+ HRESULT STDMETHODCALLTYPE IsUpToDate(void);
+ HRESULT STDMETHODCALLTYPE GetUserClassID(CLSID *pClsid);
+ HRESULT STDMETHODCALLTYPE GetUserType(DWORD dwFormOfType,LPOLESTR *pszUserType);
+ HRESULT STDMETHODCALLTYPE SetExtent(DWORD dwDrawAspect,SIZEL *psizel);
+ HRESULT STDMETHODCALLTYPE GetExtent(DWORD dwDrawAspect,SIZEL *psizel);
+ HRESULT STDMETHODCALLTYPE Advise(IAdviseSink *pAdvSink,DWORD *pdwConnection);
+ HRESULT STDMETHODCALLTYPE Unadvise(DWORD dwConnection);
+ HRESULT STDMETHODCALLTYPE EnumAdvise(IEnumSTATDATA **ppenumAdvise);
+ HRESULT STDMETHODCALLTYPE GetMiscStatus(DWORD dwAspect,DWORD *pdwStatus);
+ HRESULT STDMETHODCALLTYPE SetColorScheme(LOGPALETTE *pLogpal);
+
+ /* IPersistStorage */
+ HRESULT STDMETHODCALLTYPE GetClassID(CLSID *pClassID);
+ HRESULT STDMETHODCALLTYPE IsDirty(void);
+ HRESULT STDMETHODCALLTYPE InitNew(IStorage *pStg);
+ HRESULT STDMETHODCALLTYPE Load(IStorage *pStg);
+ HRESULT STDMETHODCALLTYPE Save(IStorage *pStgSave, BOOL fSameAsLoad);
+ HRESULT STDMETHODCALLTYPE SaveCompleted(IStorage *pStgNew);
+ HRESULT STDMETHODCALLTYPE HandsOffStorage(void);
+
+ /* IDataStorage */
+ HRESULT STDMETHODCALLTYPE GetData(FORMATETC *pformatetcIn,STGMEDIUM *pmedium);
+ HRESULT STDMETHODCALLTYPE GetDataHere(FORMATETC *pformatetc,STGMEDIUM *pmedium);
+ HRESULT STDMETHODCALLTYPE QueryGetData(FORMATETC *pformatetc);
+ HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc(FORMATETC *pformatectIn,FORMATETC *pformatetcOut);
+ HRESULT STDMETHODCALLTYPE SetData(FORMATETC *pformatetc,STGMEDIUM *pmedium,BOOL fRelease);
+ HRESULT STDMETHODCALLTYPE EnumFormatEtc(DWORD dwDirection,IEnumFORMATETC **ppenumFormatEtc);
+ HRESULT STDMETHODCALLTYPE DAdvise(FORMATETC *pformatetc,DWORD advf,IAdviseSink *pAdvSink,DWORD *pdwConnection);
+ HRESULT STDMETHODCALLTYPE DUnadvise(DWORD dwConnection);
+ HRESULT STDMETHODCALLTYPE EnumDAdvise(IEnumSTATDATA **ppenumAdvise);
+
+ /* IObjectSafety */
+ HRESULT STDMETHODCALLTYPE GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions);
+ HRESULT STDMETHODCALLTYPE SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions);
+
+ /* IObjectWithSite */
+ HRESULT STDMETHODCALLTYPE GetSite(REFIID riid, void** ppvSite);
+ HRESULT STDMETHODCALLTYPE SetSite(IUnknown*);
+
+ STDMETHOD (Test)(WORD wFlags, DISPPARAMS FAR *pdispparams, VARIANT FAR *pvarResult, unsigned int FAR *puArgErr);
+ STDMETHOD (getVersion)(WORD wFlags, DISPPARAMS FAR *pdispparams, VARIANT FAR *pvarResult, unsigned int FAR *puArgErr);
+private:
+ LONG refCount;
+ IOleClientSite *client_site;
+
+private:
+IWebBrowser2 *webBrowser_;
+IConnectionPointContainer *connectionPointContainer;
+DWORD cookie_;
+IDispatch *document_;
+
+}; \ No newline at end of file