I changed the SendMessage implementation to:
HRESULT WINAPI fnTextSrv_TxSendMessage(ITextServices *iface, UINT msg, WPARAM wparam, LPARAM lparam, LRESULT* plresult) { ICOM_THIS_MULTI(ITextServicesImpl, lpVtbl, iface);
switch(msg) { default: FIXME("%p: (%s) STUB\n", This, get_msg_name(msg)); return E_NOTIMPL; }
}
This way I can see what are the common messages that it sends.
Typical output looks like:
fixme:richedit:fnTextSrv_TxSendMessage 0x1c570f8: (EM_SETCHARFORMAT) STUB fixme:richedit:fnTextSrv_TxSetText 0x1c570f8: partial stub (L"") fixme:richedit:fnTextSrv_TxSendMessage 0x1c570f8: (EM_SETPARAFORMAT) STUB fixme:richedit:fnTextSrv_TxSetText 0x1c570f8: partial stub (L"Sign in") fixme:richedit:fnTextSrv_TxGetNaturalSize 0x1c570f8: STUB fixme:richedit:fnTextSrv_TxSendMessage 0x1c570f8: (EM_SETCHARFORMAT) STUB fixme:richedit:fnTextSrv_TxSetText 0x1c570f8: partial stub (L"") fixme:richedit:fnTextSrv_TxSendMessage 0x1c570f8: (EM_SETPARAFORMAT) STUB fixme:richedit:fnTextSrv_TxSetText 0x1c570f8: partial stub (L"Sign in") fixme:richedit:fnTextSrv_TxGetNaturalSize 0x1c570f8: STUB fixme:richedit:fnTextSrv_TxSendMessage 0x1c570f8: (EM_SETCHARFORMAT) STUB fixme:richedit:fnTextSrv_TxSetText 0x1c570f8: partial stub (L"") fixme:richedit:fnTextSrv_TxSendMessage 0x1c570f8: (EM_SETPARAFORMAT) STUB fixme:richedit:fnTextSrv_TxSetText 0x1c570f8: partial stub (L"Offline") fixme:richedit:fnTextSrv_TxGetNaturalSize 0x1c570f8: STUB fixme:richedit:fnTextSrv_TxSendMessage 0x1c570f8: (EM_SETCHARFORMAT) STUB
So it seems the set CHAR and PARA format are the high priorities. But that's probably good as these just pass the format structures on to the associated ITextHost implementation that the application implements as far as I can tell.
I changed the SendMessage implementation to:
HRESULT WINAPI fnTextSrv_ TxSendMessage( ITextServices *iface,
UINT msg,
WPARAM wparam,
LPARAM lparam,
LRESULT* plresult) THIS_MULTI( ITextServicesIm pl, lpVtbl, iface);
{
ICOM_
switch(msg) {
default:
FIXME("%p: (%s) STUB\n", This, get_msg_name(msg));
return E_NOTIMPL;
}
}
This way I can see what are the common messages that it sends.
Typical output looks like:
fixme:richedit: fnTextSrv_ TxSendMessage 0x1c570f8: (EM_SETCHARFORMAT) STUB fnTextSrv_ TxSetText 0x1c570f8: partial stub (L"") fnTextSrv_ TxSendMessage 0x1c570f8: (EM_SETPARAFORMAT) STUB fnTextSrv_ TxSetText 0x1c570f8: partial stub (L"Sign in") fnTextSrv_ TxGetNaturalSiz e 0x1c570f8: STUB fnTextSrv_ TxSendMessage 0x1c570f8: (EM_SETCHARFORMAT) STUB fnTextSrv_ TxSetText 0x1c570f8: partial stub (L"") fnTextSrv_ TxSendMessage 0x1c570f8: (EM_SETPARAFORMAT) STUB fnTextSrv_ TxSetText 0x1c570f8: partial stub (L"Sign in") fnTextSrv_ TxGetNaturalSiz e 0x1c570f8: STUB fnTextSrv_ TxSendMessage 0x1c570f8: (EM_SETCHARFORMAT) STUB fnTextSrv_ TxSetText 0x1c570f8: partial stub (L"") fnTextSrv_ TxSendMessage 0x1c570f8: (EM_SETPARAFORMAT) STUB fnTextSrv_ TxSetText 0x1c570f8: partial stub (L"Offline") fnTextSrv_ TxGetNaturalSiz e 0x1c570f8: STUB fnTextSrv_ TxSendMessage 0x1c570f8: (EM_SETCHARFORMAT) STUB
fixme:richedit:
fixme:richedit:
fixme:richedit:
fixme:richedit:
fixme:richedit:
fixme:richedit:
fixme:richedit:
fixme:richedit:
fixme:richedit:
fixme:richedit:
fixme:richedit:
fixme:richedit:
fixme:richedit:
fixme:richedit:
fixme:richedit:
So it seems the set CHAR and PARA format are the high priorities. But that's probably good as these just pass the format structures on to the associated ITextHost implementation that the application implements as far as I can tell.