class PGOleObject : public IUnknown {
public:
   PGOleObject();
   
   virtual void PGOnClick(pg_embed_ptr embed);
   virtual void PGOnDoubleClick(pg_embed_ptr embed);
   virtual long PGDraw(HDC dc, RECT bounds, pg_embed_ptr embed);
   virtual void PGLoad(LPSTREAM stream, pg_embed_ptr embed);
   virtual void PGSave(LPSTREAM stream, pg_embed_ptr embed);
   virtual void PGDestroy(pg_embed_ptr embed);
   
   STDMETHODIMP_(ULONG) AddRef();
   STDMETHODIMP_(ULONG) Release();
   STDMETHODIMP QueryInterface(REFIID, LPVOID*);
   
private: // Data
   ULONG m_RefCount;
};
