J'ai travaillé sur un éditeur basé sur mshtml en C++ il y a un certain temps, et j'ai fait quelque chose comme le code suivant pour obtenir le style de texte de la sélection en cours.
CComQIPtr<IOleCommandTarget> spCmdTarg(pDispDoc);
if (pStyle && spCmdTarg)
{
const ULONG uNumCmnds = 4;
OLECMD arrCmnds[uNumCmnds];
arrCmnds[0].cmdID = IDM_BOLD;
arrCmnds[1].cmdID = IDM_ITALIC;
arrCmnds[2].cmdID = IDM_UNDERLINE;
arrCmnds[3].cmdID = IDM_STRIKETHROUGH;
if (SUCCEEDED(spCmdTarg->QueryStatus(&CGID_MSHTML, uNumCmnds, arrCmnds, NULL)))
{
pStyle->SetBold(arrCmnds[0].cmdf & Shdocvw_tlb::OLECMDF_LATCHED);
pStyle->SetItalic(arrCmnds[1].cmdf & Shdocvw_tlb::OLECMDF_LATCHED);
pStyle->SetUnderline(arrCmnds[2].cmdf & Shdocvw_tlb::OLECMDF_LATCHED);
pStyle->SetStrikeThrough(arrCmnds[3].cmdf & Shdocvw_tlb::OLECMDF_LATCHED);
}
}
Je ne suis pas sûr de savoir comment ce code peut être traduit en C# et ce qui est disponible sur la couche interlop de mshtml, mais nous espérons que cela peut vous aider à démarrer quelque part.
Je ne peux pas vérifier cette solution, je suppose donc, qu'il résout le problème :) – Rover