text: /*** Autogenerated by WIDL 1.2-rc2 from textstor.idl - Do not edit ***/
  
  #include <rpc.h>
  #include <rpcndr.h>
  
  #ifndef __WIDL_TEXTSTOR_H
  #define __WIDL_TEXTSTOR_H
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  /* Headers for imported files */
  
  #include <oaidl.h>
  
  /* Forward declarations */
  
  #ifndef __ITextStoreACPSink_FWD_DEFINED__
  #define __ITextStoreACPSink_FWD_DEFINED__
  typedef interface ITextStoreACPSink ITextStoreACPSink;
  #endif
  
  #ifndef __ITextStoreACP_FWD_DEFINED__
  #define __ITextStoreACP_FWD_DEFINED__
  typedef interface ITextStoreACP ITextStoreACP;
  #endif
  
  
  #define TS_E_INVALIDPOS      MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0200)
  #define TS_E_NOLOCK          MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)
  #define TS_E_NOOBJECT        MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0202)
  #define TS_E_NOSERVICE       MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0203)
  #define TS_E_NOINTERFACE     MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0204)
  #define TS_E_NOSELECTION     MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0205)
  #define TS_E_NOLAYOUT        MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0206)
  #define TS_E_INVALIDPOINT    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0207)
  #define TS_E_SYNCHRONOUS     MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0208)
  #define TS_E_READONLY        MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0209)
  #define TS_E_FORMAT          MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x020a)
  #define TS_S_ASYNC           MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0x0300)
  #define TS_DEFAULT_SELECTION (~0)
  
  #define TS_SD_READONLY (0x1)
  
  #define TS_SD_LOADING (0x2)
  
  #define TS_SS_DISJOINTSEL (0x1)
  
  #define TS_SS_REGIONS (0x2)
  
  #define TS_SS_TRANSITORY (0x4)
  
  #define TS_SS_NOHIDDENTEXT (0x8)
  
  #define TS_AS_TEXT_CHANGE (0x1)
  
  #define TS_AS_SEL_CHANGE (0x2)
  
  #define TS_AS_LAYOUT_CHANGE (0x4)
  
  #define TS_AS_ATTR_CHANGE (0x8)
  
  #define TS_AS_STATUS_CHANGE (0x10)
  
  #define TS_AS_ALL_SINKS ((((TS_AS_TEXT_CHANGE | TS_AS_SEL_CHANGE) | TS_AS_LAYOUT_CHANGE) | TS_AS_ATTR_CHANGE) | TS_AS_STATUS_CHANGE)
  
  #define TS_LF_SYNC (0x1)
  
  #define TS_LF_READ (0x2)
  
  #define TS_LF_READWRITE (0x6)
  
  #define TS_CHAR_EMBEDDED (0xfffc)
  
  #define TS_CHAR_REGION (0x0)
  
  #define TS_CHAR_REPLACEMENT (0xfffd)
  
  #define TS_IAS_NOQUERY (0x1)
  
  #define TS_IAS_QUERYONLY (0x2)
  
  typedef enum __WIDL_textstor_generated_name_00000000 {
      TS_AE_NONE = 0,
      TS_AE_START = 1,
      TS_AE_END = 2
  } TsActiveSelEnd;
  typedef enum __WIDL_textstor_generated_name_00000001 {
      TS_RT_PLAIN = 0,
      TS_RT_HIDDEN = 1,
      TS_RT_OPAQUE = 2
  } TsRunType;
  typedef GUID TS_ATTRID;
  typedef struct TS_STATUS {
      DWORD dwDynamicFlags;
      DWORD dwStaticFlags;
  } TS_STATUS;
  typedef struct TS_TEXTCHANGE {
      LONG acpStart;
      LONG acpOldEnd;
      LONG acpNewEnd;
  } TS_TEXTCHANGE;
  typedef struct TS_SELECTIONSTYLE {
      TsActiveSelEnd ase;
      BOOL fInterimChar;
  } TS_SELECTIONSTYLE;
  typedef struct TS_SELECTION_ACP {
      LONG acpStart;
      LONG acpEnd;
      TS_SELECTIONSTYLE style;
  } TS_SELECTION_ACP;
  typedef struct TS_RUNINFO {
      ULONG uCount;
      TsRunType type;
  } TS_RUNINFO;
  typedef struct TS_ATTRVAL {
      TS_ATTRID idAttr;
      DWORD dwOverlapId;
      VARIANT varValue;
  } TS_ATTRVAL;
  typedef enum __WIDL_textstor_generated_name_00000002 {
      TS_LC_CREATE = 0,
      TS_LC_CHANGE = 1,
      TS_LC_DESTROY = 2
  } TsLayoutCode;
  typedef DWORD TsViewCookie;
  /*****************************************************************************
   * ITextStoreACPSink interface
   */
  #ifndef __ITextStoreACPSink_INTERFACE_DEFINED__
  #define __ITextStoreACPSink_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_ITextStoreACPSink, 0x22d44c94, 0xa419, 0x4542, 0xa2,0x72, 0xae,0x26,0x09,0x3e,0xce,0xcf);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  interface ITextStoreACPSink : public IUnknown
  {
      virtual HRESULT STDMETHODCALLTYPE OnTextChange(
          DWORD dwFlags,
          const TS_TEXTCHANGE *pChange) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE OnSelectionChange(
          ) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE OnLayoutChange(
          TsLayoutCode lcode,
          TsViewCookie vcView) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE OnStatusChange(
          DWORD dwFlags) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE OnAttrsChange(
          LONG acpStart,
          LONG acpEnd,
          ULONG cAttrs,
          const TS_ATTRID *paAttrs) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE OnLockGranted(
          DWORD dwLockFlags) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE OnStartEditTransaction(
          ) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE OnEndEditTransaction(
          ) = 0;
  
  };
  #else
  typedef struct ITextStoreACPSinkVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          ITextStoreACPSink* This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          ITextStoreACPSink* This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          ITextStoreACPSink* This);
  
      /*** ITextStoreACPSink methods ***/
      HRESULT (STDMETHODCALLTYPE *OnTextChange)(
          ITextStoreACPSink* This,
          DWORD dwFlags,
          const TS_TEXTCHANGE *pChange);
  
      HRESULT (STDMETHODCALLTYPE *OnSelectionChange)(
          ITextStoreACPSink* This);
  
      HRESULT (STDMETHODCALLTYPE *OnLayoutChange)(
          ITextStoreACPSink* This,
          TsLayoutCode lcode,
          TsViewCookie vcView);
  
      HRESULT (STDMETHODCALLTYPE *OnStatusChange)(
          ITextStoreACPSink* This,
          DWORD dwFlags);
  
      HRESULT (STDMETHODCALLTYPE *OnAttrsChange)(
          ITextStoreACPSink* This,
          LONG acpStart,
          LONG acpEnd,
          ULONG cAttrs,
          const TS_ATTRID *paAttrs);
  
      HRESULT (STDMETHODCALLTYPE *OnLockGranted)(
          ITextStoreACPSink* This,
          DWORD dwLockFlags);
  
      HRESULT (STDMETHODCALLTYPE *OnStartEditTransaction)(
          ITextStoreACPSink* This);
  
      HRESULT (STDMETHODCALLTYPE *OnEndEditTransaction)(
          ITextStoreACPSink* This);
  
      END_INTERFACE
  } ITextStoreACPSinkVtbl;
  interface ITextStoreACPSink {
      CONST_VTBL ITextStoreACPSinkVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  /*** IUnknown methods ***/
  #define ITextStoreACPSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define ITextStoreACPSink_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define ITextStoreACPSink_Release(This) (This)->lpVtbl->Release(This)
  /*** ITextStoreACPSink methods ***/
  #define ITextStoreACPSink_OnTextChange(This,dwFlags,pChange) (This)->lpVtbl->OnTextChange(This,dwFlags,pChange)
  #define ITextStoreACPSink_OnSelectionChange(This) (This)->lpVtbl->OnSelectionChange(This)
  #define ITextStoreACPSink_OnLayoutChange(This,lcode,vcView) (This)->lpVtbl->OnLayoutChange(This,lcode,vcView)
  #define ITextStoreACPSink_OnStatusChange(This,dwFlags) (This)->lpVtbl->OnStatusChange(This,dwFlags)
  #define ITextStoreACPSink_OnAttrsChange(This,acpStart,acpEnd,cAttrs,paAttrs) (This)->lpVtbl->OnAttrsChange(This,acpStart,acpEnd,cAttrs,paAttrs)
  #define ITextStoreACPSink_OnLockGranted(This,dwLockFlags) (This)->lpVtbl->OnLockGranted(This,dwLockFlags)
  #define ITextStoreACPSink_OnStartEditTransaction(This) (This)->lpVtbl->OnStartEditTransaction(This)
  #define ITextStoreACPSink_OnEndEditTransaction(This) (This)->lpVtbl->OnEndEditTransaction(This)
  #endif
  
  #endif
  
  HRESULT STDMETHODCALLTYPE ITextStoreACPSink_OnTextChange_Proxy(
      ITextStoreACPSink* This,
      DWORD dwFlags,
      const TS_TEXTCHANGE *pChange);
  void __RPC_STUB ITextStoreACPSink_OnTextChange_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACPSink_OnSelectionChange_Proxy(
      ITextStoreACPSink* This);
  void __RPC_STUB ITextStoreACPSink_OnSelectionChange_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACPSink_OnLayoutChange_Proxy(
      ITextStoreACPSink* This,
      TsLayoutCode lcode,
      TsViewCookie vcView);
  void __RPC_STUB ITextStoreACPSink_OnLayoutChange_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACPSink_OnStatusChange_Proxy(
      ITextStoreACPSink* This,
      DWORD dwFlags);
  void __RPC_STUB ITextStoreACPSink_OnStatusChange_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACPSink_OnAttrsChange_Proxy(
      ITextStoreACPSink* This,
      LONG acpStart,
      LONG acpEnd,
      ULONG cAttrs,
      const TS_ATTRID *paAttrs);
  void __RPC_STUB ITextStoreACPSink_OnAttrsChange_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACPSink_OnLockGranted_Proxy(
      ITextStoreACPSink* This,
      DWORD dwLockFlags);
  void __RPC_STUB ITextStoreACPSink_OnLockGranted_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACPSink_OnStartEditTransaction_Proxy(
      ITextStoreACPSink* This);
  void __RPC_STUB ITextStoreACPSink_OnStartEditTransaction_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACPSink_OnEndEditTransaction_Proxy(
      ITextStoreACPSink* This);
  void __RPC_STUB ITextStoreACPSink_OnEndEditTransaction_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  
  #endif  /* __ITextStoreACPSink_INTERFACE_DEFINED__ */
  
  /*****************************************************************************
   * ITextStoreACP interface
   */
  #ifndef __ITextStoreACP_INTERFACE_DEFINED__
  #define __ITextStoreACP_INTERFACE_DEFINED__
  
  DEFINE_GUID(IID_ITextStoreACP, 0x28888fe3, 0xc2a0, 0x483a, 0xa3,0xea, 0x8c,0xb1,0xce,0x51,0xff,0x3d);
  #if defined(__cplusplus) && !defined(CINTERFACE)
  interface ITextStoreACP : public IUnknown
  {
      virtual HRESULT STDMETHODCALLTYPE AdviseSink(
          REFIID riid,
          IUnknown *punk,
          DWORD dwMask) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE UnadviseSink(
          IUnknown *punk) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE RequestLock(
          DWORD dwLockFlags,
          HRESULT *phrSession) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE GetStatus(
          TS_STATUS *pdcs) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE QueryInsert(
          LONG acpTestStart,
          LONG acpTestEnd,
          ULONG cch,
          LONG *pacpResultStart,
          LONG *pacpResultEnd) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE GetSelection(
          ULONG ulIndex,
          ULONG ulCount,
          TS_SELECTION_ACP *pSelection,
          ULONG *pcFetched) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE SetSelection(
          ULONG ulCount,
          const TS_SELECTION_ACP *pSelection) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE GetText(
          LONG acpStart,
          LONG acpEnd,
          WCHAR *pchPlain,
          ULONG cchPlainReq,
          ULONG *pcchPlainRet,
          TS_RUNINFO *prgRunInfo,
          ULONG cRunInfoReq,
          ULONG *pcRunInfoRet,
          LONG *pacpNext) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE SetText(
          DWORD dwFlags,
          LONG acpStart,
          LONG acpEnd,
          const WCHAR *pchText,
          ULONG cch,
          TS_TEXTCHANGE *pChange) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE GetFormattedText(
          LONG acpStart,
          LONG acpEnd,
          IDataObject **ppDataObject) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE GetEmbedded(
          LONG acpPos,
          REFGUID rguidService,
          REFIID riid,
          IUnknown **ppunk) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE QueryInsertEmbedded(
          const GUID *pguidService,
          const FORMATETC *pFormatEtc,
          BOOL *pfInsertable) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE InsertEmbedded(
          DWORD dwFlags,
          LONG acpStart,
          LONG acpEnd,
          IDataObject *pDataObject,
          TS_TEXTCHANGE *pChange) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE InsertTextAtSelection(
          DWORD dwFlags,
          const WCHAR *pchText,
          ULONG cch,
          LONG *pacpStart,
          LONG *pacpEnd,
          TS_TEXTCHANGE *pChange) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE InsertEmbeddedAtSelection(
          DWORD dwFlags,
          IDataObject *pDataObject,
          LONG *pacpStart,
          LONG *pacpEnd,
          TS_TEXTCHANGE *pChange) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE RequestSupportedAttrs(
          DWORD dwFlags,
          ULONG cFilterAttrs,
          const TS_ATTRID *paFilterAttrs) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE RequestAttrsAtPosition(
          LONG acpPos,
          ULONG cFilterAttrs,
          const TS_ATTRID *paFilterAttrs,
          DWORD dwFlags) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE RequestAttrsTransitioningAtPosition(
          LONG acpPos,
          ULONG cFilterAttrs,
          const TS_ATTRID *paFilterAttrs,
          DWORD dwFlags) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE FindNextAttrTransition(
          LONG acpStart,
          LONG acpHalt,
          ULONG cFilterAttrs,
          const TS_ATTRID *paFilterAttrs,
          DWORD dwFlags,
          LONG *pacpNext,
          BOOL *pfFound,
          LONG *plFoundOffset) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE RetrieveRequestedAttrs(
          ULONG ulCount,
          TS_ATTRVAL *paAttrVals,
          ULONG *pcFetched) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE GetEndACP(
          LONG *pacp) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE GetActiveView(
          TsViewCookie *pvcView) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE GetACPFromPoint(
          TsViewCookie vcView,
          const POINT *ptScreen,
          DWORD dwFlags,
          LONG *pacp) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE GetTextExt(
          TsViewCookie vcView,
          LONG acpStart,
          LONG acpEnd,
          RECT *prc,
          BOOL *pfClipped) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE GetScreenExt(
          TsViewCookie vcView,
          RECT *prc) = 0;
  
      virtual HRESULT STDMETHODCALLTYPE GetWnd(
          TsViewCookie vcView,
          HWND *phwnd) = 0;
  
  };
  #else
  typedef struct ITextStoreACPVtbl {
      BEGIN_INTERFACE
  
      /*** IUnknown methods ***/
      HRESULT (STDMETHODCALLTYPE *QueryInterface)(
          ITextStoreACP* This,
          REFIID riid,
          void **ppvObject);
  
      ULONG (STDMETHODCALLTYPE *AddRef)(
          ITextStoreACP* This);
  
      ULONG (STDMETHODCALLTYPE *Release)(
          ITextStoreACP* This);
  
      /*** ITextStoreACP methods ***/
      HRESULT (STDMETHODCALLTYPE *AdviseSink)(
          ITextStoreACP* This,
          REFIID riid,
          IUnknown *punk,
          DWORD dwMask);
  
      HRESULT (STDMETHODCALLTYPE *UnadviseSink)(
          ITextStoreACP* This,
          IUnknown *punk);
  
      HRESULT (STDMETHODCALLTYPE *RequestLock)(
          ITextStoreACP* This,
          DWORD dwLockFlags,
          HRESULT *phrSession);
  
      HRESULT (STDMETHODCALLTYPE *GetStatus)(
          ITextStoreACP* This,
          TS_STATUS *pdcs);
  
      HRESULT (STDMETHODCALLTYPE *QueryInsert)(
          ITextStoreACP* This,
          LONG acpTestStart,
          LONG acpTestEnd,
          ULONG cch,
          LONG *pacpResultStart,
          LONG *pacpResultEnd);
  
      HRESULT (STDMETHODCALLTYPE *GetSelection)(
          ITextStoreACP* This,
          ULONG ulIndex,
          ULONG ulCount,
          TS_SELECTION_ACP *pSelection,
          ULONG *pcFetched);
  
      HRESULT (STDMETHODCALLTYPE *SetSelection)(
          ITextStoreACP* This,
          ULONG ulCount,
          const TS_SELECTION_ACP *pSelection);
  
      HRESULT (STDMETHODCALLTYPE *GetText)(
          ITextStoreACP* This,
          LONG acpStart,
          LONG acpEnd,
          WCHAR *pchPlain,
          ULONG cchPlainReq,
          ULONG *pcchPlainRet,
          TS_RUNINFO *prgRunInfo,
          ULONG cRunInfoReq,
          ULONG *pcRunInfoRet,
          LONG *pacpNext);
  
      HRESULT (STDMETHODCALLTYPE *SetText)(
          ITextStoreACP* This,
          DWORD dwFlags,
          LONG acpStart,
          LONG acpEnd,
          const WCHAR *pchText,
          ULONG cch,
          TS_TEXTCHANGE *pChange);
  
      HRESULT (STDMETHODCALLTYPE *GetFormattedText)(
          ITextStoreACP* This,
          LONG acpStart,
          LONG acpEnd,
          IDataObject **ppDataObject);
  
      HRESULT (STDMETHODCALLTYPE *GetEmbedded)(
          ITextStoreACP* This,
          LONG acpPos,
          REFGUID rguidService,
          REFIID riid,
          IUnknown **ppunk);
  
      HRESULT (STDMETHODCALLTYPE *QueryInsertEmbedded)(
          ITextStoreACP* This,
          const GUID *pguidService,
          const FORMATETC *pFormatEtc,
          BOOL *pfInsertable);
  
      HRESULT (STDMETHODCALLTYPE *InsertEmbedded)(
          ITextStoreACP* This,
          DWORD dwFlags,
          LONG acpStart,
          LONG acpEnd,
          IDataObject *pDataObject,
          TS_TEXTCHANGE *pChange);
  
      HRESULT (STDMETHODCALLTYPE *InsertTextAtSelection)(
          ITextStoreACP* This,
          DWORD dwFlags,
          const WCHAR *pchText,
          ULONG cch,
          LONG *pacpStart,
          LONG *pacpEnd,
          TS_TEXTCHANGE *pChange);
  
      HRESULT (STDMETHODCALLTYPE *InsertEmbeddedAtSelection)(
          ITextStoreACP* This,
          DWORD dwFlags,
          IDataObject *pDataObject,
          LONG *pacpStart,
          LONG *pacpEnd,
          TS_TEXTCHANGE *pChange);
  
      HRESULT (STDMETHODCALLTYPE *RequestSupportedAttrs)(
          ITextStoreACP* This,
          DWORD dwFlags,
          ULONG cFilterAttrs,
          const TS_ATTRID *paFilterAttrs);
  
      HRESULT (STDMETHODCALLTYPE *RequestAttrsAtPosition)(
          ITextStoreACP* This,
          LONG acpPos,
          ULONG cFilterAttrs,
          const TS_ATTRID *paFilterAttrs,
          DWORD dwFlags);
  
      HRESULT (STDMETHODCALLTYPE *RequestAttrsTransitioningAtPosition)(
          ITextStoreACP* This,
          LONG acpPos,
          ULONG cFilterAttrs,
          const TS_ATTRID *paFilterAttrs,
          DWORD dwFlags);
  
      HRESULT (STDMETHODCALLTYPE *FindNextAttrTransition)(
          ITextStoreACP* This,
          LONG acpStart,
          LONG acpHalt,
          ULONG cFilterAttrs,
          const TS_ATTRID *paFilterAttrs,
          DWORD dwFlags,
          LONG *pacpNext,
          BOOL *pfFound,
          LONG *plFoundOffset);
  
      HRESULT (STDMETHODCALLTYPE *RetrieveRequestedAttrs)(
          ITextStoreACP* This,
          ULONG ulCount,
          TS_ATTRVAL *paAttrVals,
          ULONG *pcFetched);
  
      HRESULT (STDMETHODCALLTYPE *GetEndACP)(
          ITextStoreACP* This,
          LONG *pacp);
  
      HRESULT (STDMETHODCALLTYPE *GetActiveView)(
          ITextStoreACP* This,
          TsViewCookie *pvcView);
  
      HRESULT (STDMETHODCALLTYPE *GetACPFromPoint)(
          ITextStoreACP* This,
          TsViewCookie vcView,
          const POINT *ptScreen,
          DWORD dwFlags,
          LONG *pacp);
  
      HRESULT (STDMETHODCALLTYPE *GetTextExt)(
          ITextStoreACP* This,
          TsViewCookie vcView,
          LONG acpStart,
          LONG acpEnd,
          RECT *prc,
          BOOL *pfClipped);
  
      HRESULT (STDMETHODCALLTYPE *GetScreenExt)(
          ITextStoreACP* This,
          TsViewCookie vcView,
          RECT *prc);
  
      HRESULT (STDMETHODCALLTYPE *GetWnd)(
          ITextStoreACP* This,
          TsViewCookie vcView,
          HWND *phwnd);
  
      END_INTERFACE
  } ITextStoreACPVtbl;
  interface ITextStoreACP {
      CONST_VTBL ITextStoreACPVtbl* lpVtbl;
  };
  
  #ifdef COBJMACROS
  /*** IUnknown methods ***/
  #define ITextStoreACP_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  #define ITextStoreACP_AddRef(This) (This)->lpVtbl->AddRef(This)
  #define ITextStoreACP_Release(This) (This)->lpVtbl->Release(This)
  /*** ITextStoreACP methods ***/
  #define ITextStoreACP_AdviseSink(This,riid,punk,dwMask) (This)->lpVtbl->AdviseSink(This,riid,punk,dwMask)
  #define ITextStoreACP_UnadviseSink(This,punk) (This)->lpVtbl->UnadviseSink(This,punk)
  #define ITextStoreACP_RequestLock(This,dwLockFlags,phrSession) (This)->lpVtbl->RequestLock(This,dwLockFlags,phrSession)
  #define ITextStoreACP_GetStatus(This,pdcs) (This)->lpVtbl->GetStatus(This,pdcs)
  #define ITextStoreACP_QueryInsert(This,acpTestStart,acpTestEnd,cch,pacpResultStart,pacpResultEnd) (This)->lpVtbl->QueryInsert(This,acpTestStart,acpTestEnd,cch,pacpResultStart,pacpResultEnd)
  #define ITextStoreACP_GetSelection(This,ulIndex,ulCount,pSelection,pcFetched) (This)->lpVtbl->GetSelection(This,ulIndex,ulCount,pSelection,pcFetched)
  #define ITextStoreACP_SetSelection(This,ulCount,pSelection) (This)->lpVtbl->SetSelection(This,ulCount,pSelection)
  #define ITextStoreACP_GetText(This,acpStart,acpEnd,pchPlain,cchPlainReq,pcchPlainRet,prgRunInfo,cRunInfoReq,pcRunInfoRet,pacpNext) (This)->lpVtbl->GetText(This,acpStart,acpEnd,pchPlain,cchPlainReq,pcchPlainRet,prgRunInfo,cRunInfoReq,pcRunInfoRet,pacpNext)
  #define ITextStoreACP_SetText(This,dwFlags,acpStart,acpEnd,pchText,cch,pChange) (This)->lpVtbl->SetText(This,dwFlags,acpStart,acpEnd,pchText,cch,pChange)
  #define ITextStoreACP_GetFormattedText(This,acpStart,acpEnd,ppDataObject) (This)->lpVtbl->GetFormattedText(This,acpStart,acpEnd,ppDataObject)
  #define ITextStoreACP_GetEmbedded(This,acpPos,rguidService,riid,ppunk) (This)->lpVtbl->GetEmbedded(This,acpPos,rguidService,riid,ppunk)
  #define ITextStoreACP_QueryInsertEmbedded(This,pguidService,pFormatEtc,pfInsertable) (This)->lpVtbl->QueryInsertEmbedded(This,pguidService,pFormatEtc,pfInsertable)
  #define ITextStoreACP_InsertEmbedded(This,dwFlags,acpStart,acpEnd,pDataObject,pChange) (This)->lpVtbl->InsertEmbedded(This,dwFlags,acpStart,acpEnd,pDataObject,pChange)
  #define ITextStoreACP_InsertTextAtSelection(This,dwFlags,pchText,cch,pacpStart,pacpEnd,pChange) (This)->lpVtbl->InsertTextAtSelection(This,dwFlags,pchText,cch,pacpStart,pacpEnd,pChange)
  #define ITextStoreACP_InsertEmbeddedAtSelection(This,dwFlags,pDataObject,pacpStart,pacpEnd,pChange) (This)->lpVtbl->InsertEmbeddedAtSelection(This,dwFlags,pDataObject,pacpStart,pacpEnd,pChange)
  #define ITextStoreACP_RequestSupportedAttrs(This,dwFlags,cFilterAttrs,paFilterAttrs) (This)->lpVtbl->RequestSupportedAttrs(This,dwFlags,cFilterAttrs,paFilterAttrs)
  #define ITextStoreACP_RequestAttrsAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags) (This)->lpVtbl->RequestAttrsAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags)
  #define ITextStoreACP_RequestAttrsTransitioningAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags) (This)->lpVtbl->RequestAttrsTransitioningAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags)
  #define ITextStoreACP_FindNextAttrTransition(This,acpStart,acpHalt,cFilterAttrs,paFilterAttrs,dwFlags,pacpNext,pfFound,plFoundOffset) (This)->lpVtbl->FindNextAttrTransition(This,acpStart,acpHalt,cFilterAttrs,paFilterAttrs,dwFlags,pacpNext,pfFound,plFoundOffset)
  #define ITextStoreACP_RetrieveRequestedAttrs(This,ulCount,paAttrVals,pcFetched) (This)->lpVtbl->RetrieveRequestedAttrs(This,ulCount,paAttrVals,pcFetched)
  #define ITextStoreACP_GetEndACP(This,pacp) (This)->lpVtbl->GetEndACP(This,pacp)
  #define ITextStoreACP_GetActiveView(This,pvcView) (This)->lpVtbl->GetActiveView(This,pvcView)
  #define ITextStoreACP_GetACPFromPoint(This,vcView,ptScreen,dwFlags,pacp) (This)->lpVtbl->GetACPFromPoint(This,vcView,ptScreen,dwFlags,pacp)
  #define ITextStoreACP_GetTextExt(This,vcView,acpStart,acpEnd,prc,pfClipped) (This)->lpVtbl->GetTextExt(This,vcView,acpStart,acpEnd,prc,pfClipped)
  #define ITextStoreACP_GetScreenExt(This,vcView,prc) (This)->lpVtbl->GetScreenExt(This,vcView,prc)
  #define ITextStoreACP_GetWnd(This,vcView,phwnd) (This)->lpVtbl->GetWnd(This,vcView,phwnd)
  #endif
  
  #endif
  
  HRESULT STDMETHODCALLTYPE ITextStoreACP_AdviseSink_Proxy(
      ITextStoreACP* This,
      REFIID riid,
      IUnknown *punk,
      DWORD dwMask);
  void __RPC_STUB ITextStoreACP_AdviseSink_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_UnadviseSink_Proxy(
      ITextStoreACP* This,
      IUnknown *punk);
  void __RPC_STUB ITextStoreACP_UnadviseSink_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_RequestLock_Proxy(
      ITextStoreACP* This,
      DWORD dwLockFlags,
      HRESULT *phrSession);
  void __RPC_STUB ITextStoreACP_RequestLock_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_GetStatus_Proxy(
      ITextStoreACP* This,
      TS_STATUS *pdcs);
  void __RPC_STUB ITextStoreACP_GetStatus_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_QueryInsert_Proxy(
      ITextStoreACP* This,
      LONG acpTestStart,
      LONG acpTestEnd,
      ULONG cch,
      LONG *pacpResultStart,
      LONG *pacpResultEnd);
  void __RPC_STUB ITextStoreACP_QueryInsert_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_GetSelection_Proxy(
      ITextStoreACP* This,
      ULONG ulIndex,
      ULONG ulCount,
      TS_SELECTION_ACP *pSelection,
      ULONG *pcFetched);
  void __RPC_STUB ITextStoreACP_GetSelection_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_SetSelection_Proxy(
      ITextStoreACP* This,
      ULONG ulCount,
      const TS_SELECTION_ACP *pSelection);
  void __RPC_STUB ITextStoreACP_SetSelection_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_GetText_Proxy(
      ITextStoreACP* This,
      LONG acpStart,
      LONG acpEnd,
      WCHAR *pchPlain,
      ULONG cchPlainReq,
      ULONG *pcchPlainRet,
      TS_RUNINFO *prgRunInfo,
      ULONG cRunInfoReq,
      ULONG *pcRunInfoRet,
      LONG *pacpNext);
  void __RPC_STUB ITextStoreACP_GetText_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_SetText_Proxy(
      ITextStoreACP* This,
      DWORD dwFlags,
      LONG acpStart,
      LONG acpEnd,
      const WCHAR *pchText,
      ULONG cch,
      TS_TEXTCHANGE *pChange);
  void __RPC_STUB ITextStoreACP_SetText_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_GetFormattedText_Proxy(
      ITextStoreACP* This,
      LONG acpStart,
      LONG acpEnd,
      IDataObject **ppDataObject);
  void __RPC_STUB ITextStoreACP_GetFormattedText_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_GetEmbedded_Proxy(
      ITextStoreACP* This,
      LONG acpPos,
      REFGUID rguidService,
      REFIID riid,
      IUnknown **ppunk);
  void __RPC_STUB ITextStoreACP_GetEmbedded_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_QueryInsertEmbedded_Proxy(
      ITextStoreACP* This,
      const GUID *pguidService,
      const FORMATETC *pFormatEtc,
      BOOL *pfInsertable);
  void __RPC_STUB ITextStoreACP_QueryInsertEmbedded_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_InsertEmbedded_Proxy(
      ITextStoreACP* This,
      DWORD dwFlags,
      LONG acpStart,
      LONG acpEnd,
      IDataObject *pDataObject,
      TS_TEXTCHANGE *pChange);
  void __RPC_STUB ITextStoreACP_InsertEmbedded_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_InsertTextAtSelection_Proxy(
      ITextStoreACP* This,
      DWORD dwFlags,
      const WCHAR *pchText,
      ULONG cch,
      LONG *pacpStart,
      LONG *pacpEnd,
      TS_TEXTCHANGE *pChange);
  void __RPC_STUB ITextStoreACP_InsertTextAtSelection_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_InsertEmbeddedAtSelection_Proxy(
      ITextStoreACP* This,
      DWORD dwFlags,
      IDataObject *pDataObject,
      LONG *pacpStart,
      LONG *pacpEnd,
      TS_TEXTCHANGE *pChange);
  void __RPC_STUB ITextStoreACP_InsertEmbeddedAtSelection_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_RequestSupportedAttrs_Proxy(
      ITextStoreACP* This,
      DWORD dwFlags,
      ULONG cFilterAttrs,
      const TS_ATTRID *paFilterAttrs);
  void __RPC_STUB ITextStoreACP_RequestSupportedAttrs_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_RequestAttrsAtPosition_Proxy(
      ITextStoreACP* This,
      LONG acpPos,
      ULONG cFilterAttrs,
      const TS_ATTRID *paFilterAttrs,
      DWORD dwFlags);
  void __RPC_STUB ITextStoreACP_RequestAttrsAtPosition_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_RequestAttrsTransitioningAtPosition_Proxy(
      ITextStoreACP* This,
      LONG acpPos,
      ULONG cFilterAttrs,
      const TS_ATTRID *paFilterAttrs,
      DWORD dwFlags);
  void __RPC_STUB ITextStoreACP_RequestAttrsTransitioningAtPosition_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_FindNextAttrTransition_Proxy(
      ITextStoreACP* This,
      LONG acpStart,
      LONG acpHalt,
      ULONG cFilterAttrs,
      const TS_ATTRID *paFilterAttrs,
      DWORD dwFlags,
      LONG *pacpNext,
      BOOL *pfFound,
      LONG *plFoundOffset);
  void __RPC_STUB ITextStoreACP_FindNextAttrTransition_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_RetrieveRequestedAttrs_Proxy(
      ITextStoreACP* This,
      ULONG ulCount,
      TS_ATTRVAL *paAttrVals,
      ULONG *pcFetched);
  void __RPC_STUB ITextStoreACP_RetrieveRequestedAttrs_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_GetEndACP_Proxy(
      ITextStoreACP* This,
      LONG *pacp);
  void __RPC_STUB ITextStoreACP_GetEndACP_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_GetActiveView_Proxy(
      ITextStoreACP* This,
      TsViewCookie *pvcView);
  void __RPC_STUB ITextStoreACP_GetActiveView_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_GetACPFromPoint_Proxy(
      ITextStoreACP* This,
      TsViewCookie vcView,
      const POINT *ptScreen,
      DWORD dwFlags,
      LONG *pacp);
  void __RPC_STUB ITextStoreACP_GetACPFromPoint_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_GetTextExt_Proxy(
      ITextStoreACP* This,
      TsViewCookie vcView,
      LONG acpStart,
      LONG acpEnd,
      RECT *prc,
      BOOL *pfClipped);
  void __RPC_STUB ITextStoreACP_GetTextExt_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_GetScreenExt_Proxy(
      ITextStoreACP* This,
      TsViewCookie vcView,
      RECT *prc);
  void __RPC_STUB ITextStoreACP_GetScreenExt_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  HRESULT STDMETHODCALLTYPE ITextStoreACP_GetWnd_Proxy(
      ITextStoreACP* This,
      TsViewCookie vcView,
      HWND *phwnd);
  void __RPC_STUB ITextStoreACP_GetWnd_Stub(
      IRpcStubBuffer* This,
      IRpcChannelBuffer* pRpcChannelBuffer,
      PRPC_MESSAGE pRpcMessage,
      DWORD* pdwStubPhase);
  
  #endif  /* __ITextStoreACP_INTERFACE_DEFINED__ */
  
  /* Begin additional prototypes for all interfaces */
  
  ULONG           __RPC_USER CLIPFORMAT_UserSize     (ULONG *, ULONG, CLIPFORMAT *);
  unsigned char * __RPC_USER CLIPFORMAT_UserMarshal  (ULONG *, unsigned char *, CLIPFORMAT *);
  unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(ULONG *, unsigned char *, CLIPFORMAT *);
  void            __RPC_USER CLIPFORMAT_UserFree     (ULONG *, CLIPFORMAT *);
  ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
  unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
  unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
  void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
  ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
  unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
  unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
  void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
  
  /* End additional prototypes */
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif /* __WIDL_TEXTSTOR_H */
  