⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dsofdocobj.h

📁 用于在线office文档编辑的控件。可以在线新建文档、修改文档
💻 H
📖 第 1 页 / 共 2 页
字号:

 // IOlePreviewCallback Implementation
    BEGIN_INTERFACE_PART(PreviewCallback , IOlePreviewCallback)
        STDMETHODIMP Notify(DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus);
    END_INTERFACE_PART(PreviewCallback)

    STDMETHODIMP        InitializeNewInstance(HWND hwndCtl, LPRECT prcPlace, LPWSTR pwszHost, IOleCommandTarget* pcmdCtl);
    STDMETHODIMP        InitObjectStorage(REFCLSID rclsid, IStorage *pstg);

    STDMETHODIMP        CreateDocObject(REFCLSID rclsid);
    STDMETHODIMP        LoadStorageFromFile(LPWSTR pwszFile, REFCLSID rclsid, BOOL fReadOnly);
    STDMETHODIMP        LoadStorageFromURL(LPWSTR pwszURL, REFCLSID rclsid, BOOL fReadOnly, LPWSTR pwszUserName, LPWSTR pwszPassword);
    STDMETHODIMP        LoadFromAutomationObject(LPUNKNOWN punkObj, REFCLSID rclsid, BOOL fReadOnly);

    STDMETHODIMP        IPActivateView();
    STDMETHODIMP        IPDeactivateView();
    STDMETHODIMP        UIActivateView(BOOL fFocus);

    STDMETHODIMP        SaveDefault();
    STDMETHODIMP        SaveStorageToFile(LPWSTR pwszFile, BOOL fOverwriteFile);
    STDMETHODIMP        SaveStorageToURL(LPWSTR pwszURL, BOOL fOverwriteFile, LPWSTR pwszUserName, LPWSTR pwszPassword);

    STDMETHODIMP        DoOleCommand(DWORD dwOleCmdId, DWORD dwOptions, VARIANT* vInParam, VARIANT* vInOutParam);
    STDMETHODIMP_(void) Close();

    STDMETHODIMP        PrintDocument(LPCWSTR pwszPrinter, LPCWSTR pwszOutput, UINT cCopies, UINT nFrom, UINT nTo, BOOL fPromptUser);
    STDMETHODIMP        StartPrintPreview();
    STDMETHODIMP        ExitPrintPreview(BOOL fForceExit);

 // Control should notify us on these conditions (so we can pass to IP object)...
    STDMETHODIMP_(void) OnNotifySizeChange(LPRECT prc);
    STDMETHODIMP_(void) OnNotifyAppActivate(BOOL fActive, DWORD dwThreadID);
    STDMETHODIMP_(void) OnNotifyPaletteChanged(HWND hwndPalChg);
    STDMETHODIMP_(void) OnNotifyChangeToolState(BOOL fShowTools);
    STDMETHODIMP_(void) OnNotifyHostSetFocus();
   
    STDMETHODIMP        HrGetDataFromObject(VARIANT *pvtType, VARIANT *pvtOutput);
    STDMETHODIMP        HrSetDataInObject(VARIANT *pvtType, VARIANT *pvtInput, BOOL fMbcsString);

 // Inline accessors for control to get IP object info...
	LPDISPATCH GetIDispatch();
    inline IOleInPlaceActiveObject*  GetActiveObject(){return m_pipactive;}
    inline IOleObject*               GetOleObject(){return m_pole;}
    inline BOOL         IsReadOnly(){return m_fOpenReadOnly;}
	inline HWND         GetDocWindow(){return m_hwnd;}
    inline HWND         GetActiveWindow(){return m_hwndUIActiveObj;}
    inline HWND         GetMenuHWND(){return m_hwndMenuObj;}
    inline HMENU        GetActiveMenu(){return m_hMenuActive;}
	inline HMENU        GetMergedMenu(){return m_hMenuMerged;}
	inline void         SetMergedMenu(HMENU h){m_hMenuMerged = h;}
    inline LPCWSTR      GetSourceName(){return ((m_pwszWebResource) ? m_pwszWebResource : m_pwszSourceFile);}
    inline LPCWSTR      GetSourceDocName(){return ((m_pwszSourceFile) ? &m_pwszSourceFile[m_idxSourceName] : NULL);}
    inline BOOL         InPrintPreview(){return (m_pprtprv != NULL);}

	static STDMETHODIMP_(CDsoDocObject*) CreateNewDocObject(){return new CDsoDocObject();}
	STDMETHODIMP_(BOOL) IsStorageDirty();

protected:
 // Internal helper methods...
    STDMETHODIMP             CreateObjectStorage(REFCLSID rclsid);
    STDMETHODIMP             SaveObjectStorage();
    STDMETHODIMP             ValidateDocObjectServer(REFCLSID rclsid);
    STDMETHODIMP_(BOOL)      ValidateFileExtension(WCHAR* pwszFile, WCHAR** ppwszOut);

    STDMETHODIMP_(void)      OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize);

    STDMETHODIMP             EnsureOleServerRunning(BOOL fLockRunning);
    STDMETHODIMP_(void)      FreeRunningLock();
    STDMETHODIMP_(void)      TurnOffWebToolbar();
    STDMETHODIMP_(void)      ClearMergedMenu();
    STDMETHODIMP_(DWORD)     CalcDocNameIndex(LPCWSTR pwszPath);

 // These functions allow the component to access files in a Web Folder for 
 // write access using the MS Provider for Internet Publishing (MSDAIPP), which
 // is installed by Office and comes standard in Windows 2000/ME/XP/2003. The
 // provider is not required to use the component, only if you wish to save to 
 // an FPSE or DAV Web Folder (URL). 
    STDMETHODIMP_(IUnknown*) CreateRosebudIPP();
    STDMETHODIMP             DownloadWebResource(LPWSTR pwszURL, LPWSTR pwszFile, LPWSTR pwszUsername, LPWSTR pwszPassword, IStream** ppstmKeepForSave);
    STDMETHODIMP             UploadWebResource(LPWSTR pwszFile, IStream** ppstmSave, LPWSTR pwszURLSaveTo, BOOL fOverwriteFile, LPWSTR pwszUsername, LPWSTR pwszPassword);

    static STDMETHODIMP_(LRESULT)  FrameWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);

 // The private class variables...
private:
    ULONG                m_cRef;				// Reference count
    HWND                 m_hwnd;                // our window
    HWND                 m_hwndCtl;             // The control's window
    IOleCommandTarget   *m_pcmdCtl;             // IOCT of host (for frame msgs)
    RECT                 m_rcViewRect;          // Viewable area (set by host)

    LPWSTR               m_pwszSourceFile;      // Path to Source File (on Open)
    IStorage            *m_pstgSourceFile;      // Original File Storage (if open/save file)
    IMoniker            *m_pmkSourceObject;     // Moniker to original source object (file or new object)
    DWORD                m_idxSourceName;       // Index to doc name in m_pwszSourceFile

    IStorage            *m_pstgroot;            // Root temp storage
    IStorage            *m_pstgfile;            // In-memory file storage
    IStream             *m_pstmview;            // In-memory view info stream

    LPWSTR               m_pwszWebResource;     // The full URL to the web resource
    IStream             *m_pstmWebResource;     // Original Download Stream (if open/save URL)
    IUnknown            *m_punkRosebud;         // MSDAIPP pointer (for URL downloads)
    LPWSTR               m_pwszUsername;        // Username and password used by MSDAIPP
    LPWSTR               m_pwszPassword;        // for Authentication (see IAuthenticate)
    LPWSTR               m_pwszHostName;        // Ole Host Name for container


    IOleObject              *m_pole;            // Embedded OLE Object (OLE)
    IOleInPlaceObject       *m_pipobj;          // The IP object methods (OLE)
    IOleInPlaceActiveObject *m_pipactive;       // The UI Active object methods (OLE)
    IOleDocumentView        *m_pdocv;           // MSO Document View (DocObj)
    IOleCommandTarget       *m_pcmdt;           // MSO Command Target (DocObj)
    IOleInplacePrintPreview *m_pprtprv;         // MSO Print Preview (DocObj)

    HMENU                m_hMenuActive;         // The menu supplied by embedded object
    HMENU                m_hMenuMerged;         // The merged menu (set by control host)
    HOLEMENU             m_holeMenu;            // The OLE Menu Descriptor
    HWND                 m_hwndMenuObj;         // The window for menu commands
    HWND                 m_hwndIPObject;        // IP active object window
    HWND                 m_hwndUIActiveObj;     // UI Active object window
    DWORD                m_dwObjectThreadID;    // Thread Id of UI server
    BORDERWIDTHS         m_bwToolSpace;         // Toolspace...

 // Bitflags (state info)...
    unsigned int         m_fDisplayTools:1;
    unsigned int         m_fDisconnectOnQuit:1;
    unsigned int         m_fAppWindowActive:1;
    unsigned int         m_fOpenReadOnly:1;
    unsigned int         m_fObjectInModalCondition:1;
    unsigned int         m_fObjectIPActive:1;
    unsigned int         m_fObjectUIActive:1;
    unsigned int         m_fObjectActivateComplete:1;
	unsigned int         m_fLockedServerRunning:1;
	unsigned int         m_fLoadedFromAuto:1;
	unsigned int         m_fInClose:1;
public:
	CLSID                m_clsidObject;         // CLSID of the embedded object

};


#endif //DS_DSOFDOCOBJ_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -