svvitch
digital signage player
|
00001 #pragma once 00002 00003 #ifdef UNICODE 00004 #define FormatMessage FormatMessageW 00005 #define FindResource FindResourceW 00006 #define GetModuleFileName GetModuleFileNameW 00007 #define CreateFile CreateFileW 00008 #define LoadLibrary LoadLibraryW 00009 #define CreateEvent CreateEventW 00010 #else 00011 #define FormatMessage FormatMessageA 00012 #define FindResource FindResourceA 00013 #define GetModuleFileName GetModuleFileNameA 00014 #define CreateFile CreateFileA 00015 #define LoadLibrary LoadLibraryA 00016 #define CreateEvent CreateEventA 00017 #endif // !UNICODE 00018 #include <atlbase.h> 00019 #include <Poco/Logger.h> 00020 00021 class ComContent; 00022 00027 class ControlSite: public IOleInPlaceSiteWindowless, public IOleClientSite 00028 { 00029 private: 00030 Poco::Logger& _log; 00031 int _ref; 00032 RECT _rect; 00033 ComContent* _com; 00034 00035 public: 00036 ControlSite(ComContent* com); 00037 00038 virtual ‾ControlSite(); 00039 00040 void GetRect(LPRECT rect); 00041 00042 // IUnknown 00043 HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, LPVOID* ppv); 00044 00045 ULONG STDMETHODCALLTYPE AddRef(); 00046 00047 ULONG STDMETHODCALLTYPE Release(); 00048 00049 00050 00051 // IServiceProvider 00052 //virtual HRESULT STDMETHODCALLTYPE QueryService(REFGUID guidService, REFIID riid, void __RPC_FAR *__RPC_FAR *ppvObject); 00053 00054 00055 00056 // ICallFactory 00057 //HRESULT STDMETHODCALLTYPE CreateCall(REFIID riid, IUnknown *pCtrlUnk, REFIID riid2, IUnknown **ppv); 00058 00059 00060 00061 // IOleClientSite 00062 00063 virtual HRESULT STDMETHODCALLTYPE SaveObject(void); 00064 00065 virtual HRESULT STDMETHODCALLTYPE GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker,IMoniker** ppmk); 00066 00067 virtual HRESULT STDMETHODCALLTYPE GetContainer(IOleContainer ** theContainerP); 00068 00069 virtual HRESULT STDMETHODCALLTYPE ShowObject(void); 00070 00071 virtual HRESULT STDMETHODCALLTYPE OnShowWindow(BOOL); 00072 00073 virtual HRESULT STDMETHODCALLTYPE RequestNewObjectLayout(void); 00074 00075 00076 00077 // IOleWindow 00078 00079 HRESULT STDMETHODCALLTYPE GetWindow(HWND __RPC_FAR* theWnndow); 00080 00081 HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode); 00082 00083 00084 00085 // IOleInPlaceSite 00086 00087 HRESULT STDMETHODCALLTYPE CanInPlaceActivate(void); 00088 00089 HRESULT STDMETHODCALLTYPE OnInPlaceActivate(void); 00090 00091 HRESULT STDMETHODCALLTYPE OnUIActivate(void); 00092 00093 HRESULT STDMETHODCALLTYPE GetWindowContext(IOleInPlaceFrame __RPC_FAR *__RPC_FAR *ppFrame, IOleInPlaceUIWindow __RPC_FAR *__RPC_FAR *ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo); 00094 00095 HRESULT STDMETHODCALLTYPE Scroll(SIZE scrollExtant); 00096 00097 HRESULT STDMETHODCALLTYPE OnUIDeactivate(BOOL fUndoable); 00098 00099 HRESULT STDMETHODCALLTYPE OnInPlaceDeactivate(void); 00100 00101 HRESULT STDMETHODCALLTYPE DiscardUndoState(void); 00102 00103 HRESULT STDMETHODCALLTYPE DeactivateAndUndo(void); 00104 00105 HRESULT STDMETHODCALLTYPE OnPosRectChange(LPCRECT lprcPosRect); 00106 00107 00108 00109 // IOleInPlaceSiteEx 00110 00111 HRESULT STDMETHODCALLTYPE OnInPlaceActivateEx(BOOL __RPC_FAR *pfNoRedraw, DWORD dwFlags); 00112 00113 HRESULT STDMETHODCALLTYPE OnInPlaceDeactivateEx(BOOL fNoRedraw); 00114 00115 HRESULT STDMETHODCALLTYPE RequestUIActivate(void); 00116 00117 00118 00119 // IOleInPlaceSiteWindowless 00120 00121 HRESULT STDMETHODCALLTYPE CanWindowlessActivate(void); 00122 00123 HRESULT STDMETHODCALLTYPE GetCapture(void); 00124 00125 HRESULT STDMETHODCALLTYPE SetCapture(BOOL fCapture); 00126 00127 HRESULT STDMETHODCALLTYPE GetFocus(void); 00128 00129 HRESULT STDMETHODCALLTYPE SetFocus(BOOL fFocus); 00130 00131 HRESULT STDMETHODCALLTYPE GetDC(LPCRECT pRect, DWORD grfFlags, HDC __RPC_FAR *phDC); 00132 00133 HRESULT STDMETHODCALLTYPE ReleaseDC(HDC hDC); 00134 00135 HRESULT STDMETHODCALLTYPE InvalidateRect(LPCRECT pRect, BOOL fErase); 00136 00137 HRESULT STDMETHODCALLTYPE InvalidateRgn(HRGN hRGN, BOOL fErase); 00138 00139 HRESULT STDMETHODCALLTYPE ScrollRect(INT dx, INT dy, LPCRECT pRectScroll, LPCRECT pRectClip); 00140 00141 HRESULT STDMETHODCALLTYPE AdjustRect(LPRECT prc); 00142 00143 HRESULT STDMETHODCALLTYPE OnDefWindowMessage(UINT msg, WPARAM wParam, LPARAM lParam, LRESULT __RPC_FAR *plResult); 00144 };