msctf: Beginning implementation of ITfContext::GetStart.

This commit is contained in:
Aric Stewart 2009-05-21 13:45:26 -05:00 committed by Alexandre Julliard
parent a9c998ae90
commit 6772a07a94
3 changed files with 43 additions and 2 deletions

View File

@ -299,8 +299,22 @@ static HRESULT WINAPI Context_GetStart (ITfContext *iface,
TfEditCookie ec, ITfRange **ppStart) TfEditCookie ec, ITfRange **ppStart)
{ {
Context *This = (Context *)iface; Context *This = (Context *)iface;
FIXME("STUB:(%p)\n",This); EditCookie *cookie;
return E_NOTIMPL; TRACE("(%p) %i %p\n",This,ec,ppStart);
if (!ppStart)
return E_INVALIDARG;
*ppStart = NULL;
if (!This->connected)
return TF_E_DISCONNECTED;
if (get_Cookie_magic(ec)!=COOKIE_MAGIC_EDITCOOKIE)
return TF_E_NOLOCK;
cookie = get_Cookie_data(ec);
return Range_Constructor(iface, This->pITextStoreACP, cookie->lockType, 0, 0, ppStart);
} }
static HRESULT WINAPI Context_GetEnd (ITfContext *iface, static HRESULT WINAPI Context_GetEnd (ITfContext *iface,

View File

@ -1373,9 +1373,33 @@ static ULONG WINAPI EditSession_Release(ITfEditSession *iface)
static HRESULT WINAPI EditSession_DoEditSession(ITfEditSession *iface, static HRESULT WINAPI EditSession_DoEditSession(ITfEditSession *iface,
TfEditCookie ec) TfEditCookie ec)
{ {
ITfContext *cxt;
ITfDocumentMgr *dm;
ITfRange *range;
HRESULT hr;
ok(test_DoEditSession == SINK_EXPECTED, "Unexpected DoEditSession\n"); ok(test_DoEditSession == SINK_EXPECTED, "Unexpected DoEditSession\n");
ok(test_ACP_RequestLock == SINK_FIRED,"Expected RequestLock not fired\n"); ok(test_ACP_RequestLock == SINK_FIRED,"Expected RequestLock not fired\n");
test_DoEditSession = SINK_FIRED; test_DoEditSession = SINK_FIRED;
ITfThreadMgr_GetFocus(g_tm, &dm);
ITfDocumentMgr_GetTop(dm,&cxt);
hr = ITfContext_GetStart(cxt,ec,NULL);
ok(hr == E_INVALIDARG,"Unexpected return code %x\n",hr);
range = (ITfRange*)0xdeaddead;
hr = ITfContext_GetStart(cxt,0xdeadcafe,&range);
ok(hr == TF_E_NOLOCK,"Unexpected return code %x\n",hr);
ok(range == NULL,"Range not set to NULL\n");
hr = ITfContext_GetStart(cxt,ec,&range);
ok(SUCCEEDED(hr),"Unexpected return code %x\n",hr);
ok(range != NULL,"Range set to NULL\n");
ITfRange_Release(range);
ITfContext_Release(cxt);
ITfDocumentMgr_Release(dm);
return 0xdeadcafe; return 0xdeadcafe;
} }

View File

@ -25,7 +25,10 @@ import "textstor.idl";
cpp_quote("#include <winuser.h>") cpp_quote("#include <winuser.h>")
cpp_quote("#define TF_E_STACKFULL MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0501)") cpp_quote("#define TF_E_STACKFULL MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0501)")
cpp_quote("#define TF_E_DISCONNECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0504)")
cpp_quote("#define TF_E_ALREADY_EXISTS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0506)") cpp_quote("#define TF_E_ALREADY_EXISTS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0506)")
cpp_quote("#define TF_E_NOLOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)")
cpp_quote("EXTERN_C const CLSID CLSID_TF_ThreadMgr;") cpp_quote("EXTERN_C const CLSID CLSID_TF_ThreadMgr;")
cpp_quote("EXTERN_C const CLSID CLSID_TF_InputProcessorProfiles;") cpp_quote("EXTERN_C const CLSID CLSID_TF_InputProcessorProfiles;")
cpp_quote("EXTERN_C const CLSID CLSID_TF_CategoryMgr;") cpp_quote("EXTERN_C const CLSID CLSID_TF_CategoryMgr;")