STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS)  PURE; STDMETHOD_(ULONG,Release) (THIS) PURE;   STDMETHOD(OnReadPattFromSzFile)(THIS_ LPATTACH lpatt, LPTSTR lpszFile, ULONG ulFlags) PURE; STDMETHOD(OnWritePattToSzFile)(THIS_ LPATTACH lpatt, LPTSTR lpszFile, ULONG ulFlags) PURE; STDMETHOD(QueryDisallowOpenPatt)(THIS_ LPATTACH lpatt) PURE; STDMETHOD(OnOpenPatt)(THIS_ LPATTACH lpatt) PURE; STDMETHOD(OnOpenSzFile)(THIS_ LPTSTR lpszFile, ULONG ulFlags) PURE;
STDMETHOD(QueryInterface)(THIS_ REFIID, PVOID*) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE;   STDMETHOD_(ULONG, GetMaxPageCount)(THIS_ ULONG) PURE; STDMETHOD(GetPages)(THIS_ LPEXCHEXTCALLBACK, ULONG, LPPROPSHEETPAGE, ULONG*) PURE; STDMETHOD_(void, FreePages)(THIS_ LPPROPSHEETPAGE, ULONG, ULONG) PURE;
DECLARE_INTERFACE_(IExchExtAttachedFileEvents, IUnknown){  // *** IUnknown methods ***  STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;  STDMETHOD_(ULONG,AddRef) (THIS)  PURE;  STDMETHOD_(ULONG,Release) (THIS) PURE;    // *** IExchExtAttachedFileEvents methods ***  STDMETHOD(OnReadPattFromSzFile)(THIS_ LPATTACH lpatt, LPTSTR lpszFile,				  ULONG ulFlags) PURE;  STDMETHOD(OnWritePattToSzFile)(THIS_ LPATTACH lpatt, LPTSTR lpszFile,				 ULONG ulFlags) PURE;  STDMETHOD(QueryDisallowOpenPatt)(THIS_ LPATTACH lpatt) PURE;  STDMETHOD(OnOpenPatt)(THIS_ LPATTACH lpatt) PURE;  STDMETHOD(OnOpenSzFile)(THIS_ LPTSTR lpszFile, ULONG ulFlags) PURE;};