Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Metin Nesne Modeli (TOM), zengin düzenleme denetimi de dahil olmak üzere çeşitli Microsoft metin çözümleri tarafından çeşitli derecelerde desteklenen bir dizi metin işleme arabirimi tanımlar. Bu konu, TOM'a üst düzey bir genel bakış sağlar. Aşağıdaki konular ele alınmaktadır.
- TOM Sürüm 2'nin Nesneleri
- TOM Arayüz Konvansiyonları
- tomBool Türü
- Matematik Gelişim ve Azalma
- TOM RTF
- Zengin metin bulma
-
TOM Erişilebilirlik
- Çalıştırılan Nesne Tablosundan Arabirim
- Pencere Mesajları Arabirimi
- erişilebilirlik odaklı yöntemler
- Karakter Eşleştirme Kümeleri
TOM Sürüm 2 Nesneleri
TOM sürüm 2 (TOM 2) özgün metin nesnesi modelini genişletir; yeni arabirimler eski arabirimlerden türetilir. Güncelleştirilmiş TOM API'sinde yeni karakter ve paragraf biçimi özellikleri, tablo modeli, birden çok seçim ve matematik ve ruby için satır içi nesne desteği bulunur.
Üst düzey TOM 2 nesnesi, nesne hiyerarşisinde daha düşük nesneleri oluşturma ve alma yöntemlerine sahip ITextDocument2 arabirimi tarafından tanımlanır. Basit düz metin işleme için, bir ITextDocument2 nesnesinden ITextRange2 nesnesi edinebilir ve her şeyi bununla yapabilirsiniz. Zengin metin biçimlendirmesi eklemeniz gerekiyorsa, ITextRange2 nesnesinden ITextFont2 ve ITextPara2 nesnelerini edinebilirsiniz. ITextFont2, Microsoft Word format-font iletişim kutusunun programlama eşdeğerini sağlar ve ITextPara2, Word format-paragraph iletişim kutusunun eşdeğerini sağlar.
Bu üç alt düzey nesneye ek olarak, TOM 2'de seçim vurgulama ve bazı kullanıcı arabirimi odaklı yöntemler içeren bir ITextRange2 nesnesi olan bir seçim nesnesi (ITextSelection2) vardır.
Aralık ve seçim nesneleri, programların ekrandaki metinleri veya ekrana kaydırılabilir metinleri incelemesini sağlayan ekran odaklı yöntemler içerir. Bu özellikler, örneğin görme bozukluğu olan kişiler için metnin erişilebilir olmasını sağlamaya yardımcı olur.
2 soneki olan her arabirim, 2 soneki olmadan ilgili arabirimden devralınır. Örneğin, ITextDocument2, ITextDocument'dan devralır.
TOM 2 nesneleri aşağıdaki hiyerarşiye sahiptir.
ITextDocument2 Top-level editing object
ITextRange2 Primary text interface: a range of text
ITextFont2 Character-attribute interface
ITextPara2 Paragraph-attribute interface
ITextRow Table interface
ITextSelection2 Screen highlighted text range
ITextRange2 Selection inherits all range methods
ITextDisplays Displays collection (not yet defined)
ITextStrings Rich-text strings collection
ITextStoryRanges2 Enumerator for stories in document
bir ITextDocument2 nesnesi, hikayeleri adlı bir veya daha fazla bitişik metin aralığını açıklar. Hikayeler, belgenin ana metni, üst bilgiler ve altbilgiler, dipnotlar, ek açıklamalar ve zengin metin karalama defterleri gibi belgenin çeşitli bölümlerini temsil eder. Doğrusal olarak biçimlendirilmiş matematik ifadeleri ile birleştirilmiş bir form arasında çeviri yapılırken karalama defteri hikayesi kullanılır. Ayrıca, içerik değiştirilmek üzereyken geçerli kopya kaynağı olan bir aralığın içeriği kaydedilirken karalama defteri hikayesi de kullanılır.
ITextRange2 nesnesi, başlangıç ve bitiş karakter konumu uzaklıkları ve bir öykü nesnesi tarafından tanımlanır. Metni panoya veya diğer hedeflere kopyalanabilir, ancak üst yazı nesnesinden bağımsız olarak mevcut değildir. Metin aralığı nesnesi, diğer uzaklık türleri tarafından tanımlanan elektronik tablodan ve diğer aralık nesnelerinden farklıdır; örneğin, satır/sütun veya grafik konumu (x, y). Metin aralığı nesnesi kendisini çeşitli şekillerde değiştirebilir, bir kopyasını oluşturabilir ve başlangıç ve bitiş karakter konumları ile hikaye işaretçisini geçerli seçime kopyalayacak şekilde komut verilebilir.
bir ITextRange nesnesi her zaman belirli bir öyküyü temsil etmek için oluşturulabildiğinden, açık bir öykü nesnesi gerekli değildir. Özellikle, ITextDocument nesnesi, belgedeki öyküleri tam öyküleri açıklayan başlangıç ve bitiş karakter konumu değerlerine sahip aralıklar açısından (örneğin, 0 ve tomForward) numaralandıracak bir ITextStoryRanges nesnesi oluşturabilir.
ITextStoryRanges2 nesnesiyle, her hikaye bir ITextRange2 nesnesi tarafından açıklandığından, açık bir hikaye nesnesi gerekmez. Özellikle, ITextDocument2 nesnesi, belgedeki öyküleri tam öyküleri açıklayan başlangıç ve bitiş karakter konumu değerlerine sahip aralıklar açısından (örneğin, 0 ve tomForward) numaralandıracak bir ITextStoryRanges2 nesnesi oluşturabilir.
ITextRow arabirimi, ITextRange::Move ve ITextRange::Expand yöntemleriyle birlikte tablo ekleme, sorgulama ve değiştirme yeteneği verir.
TOM Arabirim Kuralları
Tüm TOM yöntemleri HRESULT değerleri döndürür. Genel olarak, TOM yöntemleri aşağıdaki standart değerleri döndürür.
- E_OUTOFMEMORY (Hafıza yetersiz)
- Geçersiz Argüman Hatası
- E_NOTIMPL
- E_FILENOTFOUND
- E_ERİŞİM_ENGELLENDİ
- E_FAIL
- CO_E_RELEASED
- NOERROR (S_OK ile aynıdır)
- S_YANLIŞ
ITextRange gibi bir TOM nesnesiyle ilişkili düzenleme örneği silinirse, TOM nesnesinin işe yaramaz hale geldiğini ve tüm yöntemlerinin CO_E_RELEASED döndürdüğünü unutmayın.
HRESULT dönüş değerlerine ek olarak, birçok yöntem değerleri döndürmek için kullanılan işaretçiler olan out parametrelerini içerir. Tüm arabirimler için, kullanmadan önce tüm işaretçi parametrelerinin sıfır dışı olduğundan emin olmanız gerekir. Geçerli bir işaretçi gerektiren bir yönteme null değer geçirirseniz, yöntem E_INVALIDARG döndürür. Null değerlere sahip olan isteğe bağlı çıkış işaretçileri göz ardı edilir.
Özellikleri almak ve ayarlamak için Get ve Set ön ekleriyle yöntemleri kullanın. Boole değişkenleri, FALSEiçin tomFalse (0) ve TRUEiçin tomTrue (-1) kullanır.
TOM sabitleri tomConstants numaralandırma türünde tanımlanır ve tom ön ekiyle başlar, örneğin tomWord.
tomBool Tipi
Birçok TOM yöntemi, ikili durumlara sahip zengin metin öznitelikleri için "tomBool" adlı özel bir değişken türü kullanır. tomBool türü, dört değer alabildiği için Boole türünden farklıdır: tomTrue, tomFalse, tomToggleve tomUndefined. tomTrue ve tomFalse değerleri true ve false değerlerini gösterir. bir özelliği değiştirmek için tomToggle değeri kullanılır. daha geleneksel olarak NINCH olarak adlandırılan tomUndefined değeri, uzun tam sayılar, kesirli sayılar ve COLORREFile çalışan özel bir, giriş yapılmayan ve değişiklik olmayan değerdir. Dizeler için tomUndefined (veya NINCH) null dizeyle temsil edilir. Özellik ayarı işlemleri için tomUndefined kullanılması hedef özelliği değiştirmez. Özellik alma işlemleri için tomUndefined, aralıktaki karakterlerin farklı değerlere sahip olduğu anlamına gelir (özellik iletişim kutularında gri onay kutusu verir).
Matematik Oluşturma ve İndirme
Doğrusal olarak biçimlendirilmiş matematik ifadelerini yerleşik sürümlere dönüştürmek için ITextRange2::BuildUpMath yöntemini kullanabilirsiniz. ITextRange2::Linearize yöntemi, matematik ifadelerinin yerleşik sürümlerini doğrusal biçime geri dönüştürmek için doğrusallaştırma veya aşağı derleme olarak adlandırılan ters dönüştürmeyi yapar. Matematik derleme özelliği, düz metni dışarı aktarmanız veya belirli düzenleme türlerini etkinleştirmeniz gerektiğinde kullanışlıdır.
TOM RTF
TOM'da zengin metin değişimi, açık yöntem çağrıları kümeleri veya Zengin Metin Biçiminde (RTF) zengin metin aktarımları ile gerçekleştirilebilir. Bu bölüm, paragraf özellikleri ve karakter özellikleri için RTF denetim sözcüklerinin tablolarını verir.
TOM RTF Paragraf Denetim Sözcükleri
| Denetim sözcüğü | Anlam |
|---|---|
| \ fi n | İlk satır girintisi (varsayılan değer sıfırdır). |
| tutmak | Paragrafı olduğu gibi tutun. |
| \ keepn | Sonraki paragrafla devam edin. |
| \ li n | Sol girinti (varsayılan değer sıfırdır). |
| çizgi yok | Satır numaralandırması yok. |
| \ nowidctlpar | Dul/yalnız bırakma denetimini kapatın. |
| \ pagebb | Sayfayı paragrafın önüne kesme. |
| \Par | Yeni paragraf. |
| \ pard | Varsayılan paragraf özelliklerine sıfırlar. |
| \QL | Sola hizalı (varsayılan). |
| QR | Sağa hizalanmış. |
| \ qj | Haklı. |
| \Qc | Merkezli. |
| \ ri n | Sağ girinti (varsayılan değer sıfırdır). |
| \ s n | Stil n. |
| \ sa n | Sonraki boşluk (varsayılan değer sıfırdır). |
| \ sb n | Önceki boşluk (varsayılan değer sıfırdır). |
| \ sl n | Eksikse veya n=1000 ise, satır aralığı satırdaki en uzun karakter tarafından belirlenir (tek satır aralığı); n >, en azından bu boyut kullanılır; n sıfır < ise, tam olarak |n| kullanılır. Eğer \ slmult 1 takip ederse satır aralığı çok satırlıdır. |
| \ slmult m | \ sl. m = sıfır: \ sl nolarak belirtilen En Az veya Tam satır aralığı. m = 1: satır aralığı = tek satır aralığının n/240 katı. |
| \ tb n | Çubuk sekme konumu, sol kenar boşluğundan itibaren, twips cinsinden. |
| \ tldot | Sekme öncüsü noktaları. |
| \ tleq | Sekme öncüsü eşittir işareti. |
| \ tlhyph | Sekme öncüsü çizgiler. |
| \ tlth | Sekme öncüsü kalın çizgi. |
| \ tlul | Sekme öncüsü altı çizili. |
| \Tqc | Ortalanmış sekme. |
| \ tqdec | Ondalık sekmesi. |
| \ tqr | Sağa hizalı sekme. |
| \ tx n | Sekme konumu, sol kenar boşluğundan itibaren, twips cinsinden ölçülen. |
TOM RTF Karakter Biçimi Denetim Sözcükleri
| Denetim sözcüğü | Anlam |
|---|---|
| \ animasyon n | Animasyon türünü n olarak ayarlar. |
| \ b | Kalın. |
| şapka | Tüm büyük harfler. |
| \ cf n | Ön plan rengi (varsayılan değer , otomatik renk). |
| \ cs n | Karakter stili n. |
| \ dn n | Alt simge konumu yarım punto cinsinden (varsayılan değer 6'dır). |
| \ embo | Kabartma. |
| \ f n | Yazı tipi numarası, n yazı tipi tablosundaki bir girdiye başvurur. |
| \ fs n | Yarım nokta cinsinden yazı tipi boyutu (varsayılan değer 24'tür). |
| \ vurgu n | Arka plan rengi (varsayılan değer tomAutocolor). |
| \i | İtalik. |
| \ impr | Künye. |
| \ lang n | Bir karaktere bir dil uygular. n, dile karşılık gelen bir sayıdır. \ plain kontrol kelimesi, dil özelliğini belge özelliklerinde \ deflang n tarafından tanımlanan dile sıfırlar. |
| \ nosupersub | Üst simgeyi veya alt simgeyi kapatır. |
| \ outl | Taslak |
| \düz | Karakter biçimlendirme özelliklerini uygulama tarafından tanımlanan varsayılan değere sıfırlar. İlişkili karakter biçimlendirme özellikleri de (RTF belirtimindeki İlişkili Karakter Özellikleri bölümünde açıklanmıştır) sıfırlanır. |
| \ scaps | Küçük sermayeler. |
| şad balığı | Gölge. |
| \grev | Üstü çizili. |
| \Alt | Metne alt simge uygular ve yazı tipi bilgilerine göre nokta boyutunu küçültür. |
| \süper | Metne üst simge uygular ve yazı tipi bilgilerine göre nokta boyutunu küçültür. |
| \ul | Sürekli alt çizgi. \ ul0 tüm alt çizgilerini kapatır. |
| \ uld | Noktalı alt çizgi. |
| \ uldb | Çift alt çizgi. |
| \ ulnone | Tüm altı çizme işlemlerini durdurur. |
| \ ulw | Word altı çizili. |
| \ yukarı n | Yarım punto üst simge konumu (varsayılan değer 6'dır). |
| \ v | Gizli metin. |
Zengin Metin Arama
Bir metin aralığı tarafından tanımlanan zengin metinleri bulmak için TOM yöntemlerini kullanabilirsiniz. Tam olarak böyle zengin metinler bulmak genellikle kelime işlemde gereklidir, ancak "gördüğünüz şey, elde ettiğiniz şey" (WYSIWYG) kelime işlemcisinde hiçbir zaman yerine getirilmemiştir. Bazı karakter biçimlendirme özelliklerinin yoksayılmasına (veya paragraf biçimlendirmesi ve/veya nesne içeriği içermesine) olanak tanıyan zengin metin eşleştirmesinin daha büyük bir etki alanı olduğu açıktır, ancak bu tür genelleştirmeler bu bölümün kapsamının dışındadır.
Bu işlevin bir amacı, belgede bulmak istediğiniz zengin metni tanımlamak için zengin metin bul iletişim kutusunu kullanmaktır. İletişim kutusu, zengin bir düzenleme denetimi kullanılarak uygulanır ve TOM yöntemleri belge içinde aramayı yürütmek için kullanılır. belgeden istediğiniz zengin metni Bul iletişim kutusuna kopyalayabilir veya doğrudan Bul iletişim kutusuna girip biçimlendirebilirsiniz.
Aşağıdaki örnekte, tam karakter biçimlendirme birleşimlerini içeren metinleri bulmak için TOM yöntemlerinin nasıl kullanılacağı gösterilmektedir. Algoritma, pr1adlı eşleşme aralığındaki düz metni arar. Düz metin bulunursa, pr2adlı bir deneme aralığına işaret eder. Ardından, iki ekleme noktası aralığı (prip1 ve prip2), deneme aralığı boyunca karakter biçimlendirmesini pr1ile karşılaştırmak için kullanılır. Bunlar tam olarak eşleşiyorsa, giriş aralığı (pprtarafından verilir) deneme aralığının metnini işaret eden şekilde güncelleştirilir ve işlev eşleşen aralıktaki karakterlerin sayısını döndürür. karakter biçimlendirme karşılaştırmasında iki ITextFont nesnesi (pf1 ve pf2) kullanılır.
prip1 ve prip2ekleme noktası aralıklarına bağlıdırlar.
LONG FindRichText (
ITextRange **ppr, // Ptr to range to search
ITextRange *pr1) // Range with rich text to find
{
BSTR bstr; // pr1 plain-text to search for
LONG cch; // Text string count
LONG cch1, cch2; // tomCharFormat run char counts
LONG cchMatch = 0; // Nothing matched yet
LONG cp; // Handy char position
LONG cpFirst1; // pr1 cpFirst
LONG cpFirst2; // pr2 cpFirst
ITextFont * pf1, *pf // Fonts corresponding to IPs prip1 and prip2
ITextRange *pr2; // Range duplicate to search with
ITextRange *prip1, *prip // Insertion points to walk pr1, pr2
if (!ppr || !*ppr || !pr1)
return E_INVALIDARG;
// Initialize range and font objects used in search
if ((*ppr)->GetDuplicate(&pr2) != NOERROR ||
pr1->GetDuplicate(&prip1) != NOERROR ||
pr2->GetDuplicate(&prip2) != NOERROR ||
prip1->GetFont(&pf1) != NOERROR ||
prip2->GetFont(&pf2) != NOERROR ||
pr1->GetText(&bstr) != NOERROR )
{
return E_OUTOFMEMORY;
}
pr1->GetStart(&cpFirst1);
// Keep searching till rich text is matched or no more plain-text hits
while(!cchMatch && pr2->FindText(bstr, tomForward, 0, &cch) == NOERROR)
{
pr2->GetStart(&cpFirst2); // pr2 is a new trial range
prip1->SetRange(cpFirst1, cpFirst1); // Set up IPs to scan match
prip2->SetRange(cpFirst2, cpFirst2); // and trial ranges
while(cch > 0 &&
pf1->IsEqual(pf2, NULL) == NOERROR) // Walk match & trial ranges
{ // together comparing font
prip1->GetStart(&cch1); // properties
prip1->Move(tomCharFormat, 1, NULL);
prip1->GetStart(&cp);
cch1 = cp - cch1; // cch of next match font run
prip2->GetStart(&cch2);
prip2->Move(tomCharFormat, 1, NULL);
prip2->GetStart(&cp);
cch2 = cp - cch2; // cch of next trial font run
if(cch1 < cch) // There is more to compare
{
if(cch1 != cch2) // Different run lengths:
break; // no formatting match
cch = cch - cch1; // Matched format run
}
else if(cch2 < cch) // Trial range format run too
break; // short
else // Both match and trial runs
{ // reach at least to match
pr2->GetEnd(&cp); // text end: rich-text match
(*ppr)->SetRange(cpFirst2, cp) // Set input range to hit
cchMatch = cp - cpFirst2; // coordinates and return
break; // length of matched string
}
}
}
pr2->Release();
prip1->Release();
prip2->Release();
pf1->Release();
pf2->Release();
SysFreeString(bstr);
return cchMatch;
}
TOM Erişilebilirliği
TOM, ITextSelection ve ITextRange arabirimleri aracılığıyla erişilebilirlik desteği sağlar. Bu bölümde erişilebilirlik için yararlı olan yöntemler ve bir programın bir nesnenin xy ekran konumunu nasıl belirleyebileceği açıklanmaktadır.
Kullanıcı arabirimi tabanlı erişilebilirlik programları genellikle ekran ve fareyle çalıştığından, sık karşılaşılan bir sorun, geçerli fare konumu (ekran koordinatlarında) için ilgili ITextDocument arabirimini bulmaktır. Aşağıdaki bölümlerde uygun arabirimi belirlemenin iki yolu vardır:
- çalışan nesne tablosu aracılığıyla
- İstemcinin aynı işlem alanında olması koşuluyla pencerelenmiş zengin düzenleme örnekleri için çalışan EM_GETOLEINTERFACE iletisi aracılığıyla (hazırlama gerekmez)
Daha fazla bilgi için bkz. Microsoft Etkin Erişilebilirlik belirtimi. Bir nesneyi ekran konumundan aldıktan sonra, ITextDocument arabirimi için kullanabilir ve ekran konumuna karşılık gelen cp'de boş bir aralık nesnesi almak için RangeFromPoint yöntemini çağırabilirsiniz.
Çalışan Nesne Tablosundan Arabirim
Çalışan nesne tablosu (ROT), hangi nesne örneklerinin etkin olduğunu söyler. Bu tabloyu sorgulayarak, nesne zaten çalışırken bir istemciyi bir nesneye bağlama işlemini hızlandırabilirsiniz. Programların çalışan nesne tablosu aracılığıyla TOM arabirimlerine erişebilmesi için, penceresi olan bir TOM örneğinin bir takma ad kullanarak ROT'ye kaydolması gerekir. Adını, onaltılık değerini içeren bir dizeden HWNDşeklinde oluşturursunuz. Aşağıdaki kod örneği bunun nasıl yapılacağını gösterir.
// This TOM implementation code is executed when a new windowed
// instance starts up.
// Variables with leading underscores are members of this class.
HRESULT hr;
OLECHAR szBuf[10]; // Place to put moniker
MONIKER *pmk;
hr = StringCchPrintf(szBuff, 10, "%x", _hwnd);
if (FAILED(hr))
{
//
// TODO: write error handler
//
}
CreateFileMoniker(szBuf, &pmk);
OleStdRegisterAsRunning(this, pmk, &_dwROTcookie);
....................
// Accessibility Client:
// Find hwnd for window pointed to by mouse cursor.
GetCursorPos(&pt);
hwnd = WindowFromPoint(pt);
// Look in ROT (running object table) for an object attached to hwnd
hr = StringCchPrintf(szBuff, 10, "%x", hwnd);
if (FAILED(hr))
{
//
// TODO: write error handler
//
}
CreateFileMoniker(szBuf, &pmk);
CreateBindContext(0, &pbc);
pmk->BindToObject(pbc, NULL, IID_ITextDocument, &pDoc);
pbc->Release();
if( pDoc )
{
pDoc->RangeFromPoint(pt.x, pt.y, &pRange);
// ...now do whatever with the range pRange
}
Pencere Mesajlarından Arayüz
EM_GETOLEINTERFACE iletisi, belirli bir ekran konumundaki bir nesne için IUnknown arabirimi edinmenin başka bir yolunu sağlar. Çalışan Nesne Tablosu'ndakiArabiriminde açıklandığı gibi, önce ekran konumu için bir HWND alır ve ardından bu iletiyi o HWNDgönderirsiniz. EM_GETOLEINTERFACE iletisi, düzenlemeye özgü zengin bir iletidir ve lParamtarafından adreslenen değişkende IRichEditOle arabirimine bir işaretçi döndürür.
İpucu Eğer bir işaretçi döndürülüyorsa (iletiyi göndermeden önce lParam'ın işaret ettiği nesneyi null olarak ayarladığınızdan emin olun), ITextDocument arabirimini elde etmek için IUnknown::QueryInterface yöntemini çağırabilirsiniz. Aşağıdaki kod örneği bu yaklaşımı göstermektedir.
HWND hwnd;
ITextDocument *pDoc;
ITextRange *pRange;
POINT pt;
IUnknown *pUnk = NULL;
GetCursorPos(&pt);
hwnd = WindowFromPoint(pt);
SendMessage(hwnd, EM_GETOLEINTERFACE, 0, (LPARAM)&pUnk);
if(pUnk &&
pUnk->QueryInterface(IID_ITextDocument, &pDoc) == NOERROR)
{
pDoc->RangeFromPoint(pt.x, pt.y, &pRange);
// ... continue with rest of program
}
Erişilebilirlik Odaklı Yöntemler
Bazı TOM yöntemleri özellikle ekranda gezinmek için kullanışlıdır, diğer TOM yöntemleri ise ilgi çekici yerlere geldiğinizde yapabileceklerini geliştirir. Aşağıdaki tabloda en kullanışlı yöntemler açıklanmaktadır.
| Yöntem | Erişilebilirliği nasıl teşvik eder? |
|---|---|
| GetSelection | Bu yöntem, metni vurgulama ve kaydırma gibi çeşitli görünüm odaklı amaçlar için kullanılabilecek etkin seçimi alır. |
| RangeFromPoint | Etkin bir seçimde kullanıldığında, bu yöntemle belirli bir görünümle ilişkilendirilen bir aralık elde etmek garanti edilir. |
| Genişlet | Metin aralığını, içindeki kısmi birimlerin tamamen kapsanmasını sağlayacak şekilde büyütür. Örneğin, Expand(tomWindow), aralığın hikayesinin görünür bölümünü içerecek şekilde aralığı genişletir. |
| GetDuplicate | Etkin bir seçimde kullanıldığında, bu yöntemle belirli bir görünümle ilişkilendirilen bir aralık elde etmek garanti edilir. RangeFromPointaçıklamasına bakın. |
| GetPoint | Metin aralığındaki başlangıç veya bitiş karakteri konumunun ekran koordinatlarını alır. |
| ScrollIntoView | Metin aralığını görünüme kaydırır. |
| SetPoint | Belirtilen bir noktada veya yukarıdan metin seçer. |
Karakter Eşleştirme Kümeleri
Çeşitli Move* yöntemlerinin tür parametresi olan ITextRangeiçindeki MoveWhile ve MoveUntilgibi yöntemler, açık bir dize veya karakter eşleştirme kümesi 32 bit dizin alabilir. Dizinler Unicode aralıkları veya GetStringTypeEx karakter kümeleri tarafından tanımlanır. n başlayan ve l (< 32768) uzunluğundaki Unicode aralığı, dizini tarafından n + (l << 16) + 0x80000000 ile verilir. Örneğin, temel Yunanca harfler CR_Greek = 0x805f0370 tarafından tanımlanır ve yazdırılabilir ASCII karakterleri CR_ASCIIPrint = 0x805e0020 tarafından tanımlanır. Ayrıca, MoveWhile ve MoveUntil yöntemleri GetStringTypeEx karakter kümesindeki veya bu karakter kümelerinden herhangi birinde yer almayan karakterlerin yayılma aralığını hızla atlamanıza olanak sağlar.
GetStringTypeEx kümeleri, Ctype1, Ctype2ve Ctype3değerleriyle belirtilir ve aşağıdaki gibi tanımlanır.
| Cset | Anlam |
|---|---|
| Ctype1 | CT_CTYPE1 türlerinin birleşimi. |
| Ctype2 + tomCType2 | Herhangi bir CT_CTYPE2 türü. |
| Ctype3 + tomCType3 | CT_CTYPE3 türlerinin birleşimi. |
Özellikle, Ctype1 aşağıdakilerin herhangi bir bileşimi olabilir.
| Ctype1 adı | Değer | Anlam |
|---|---|---|
| C1_UPPER | 0x0001 | Büyük harf. |
| C1_LOWER | 0x0002 | Küçük. |
| C1_DIGIT | 0x0004 | Ondalık basamaklar. |
| C1_SPACE | 0x0008 | Boşluk karakterleri. |
| C1_PUNCT | 0x0010 | Noktalama. |
| C1_CNTRL | 0x0020 | Denetim karakterleri. |
| C1_BLANK | 0x0040 | Boş karakterler. |
| C1_XDIGIT | 0x0080 | Onaltılık basamaklar. |
| C1_ALPHA | 0x0100 | Herhangi bir dil karakteri (alfabetik, stil veya ideografik). |
| C1_DEFINED | 0x0200 | Tanımlı bir karakter, ancak diğer C1_* türlerinden biri değil. |
Ctype2 türleri, Unicode metninin düzgün düzenini destekler. Yön öznitelikleri, Unicode tarafından standartlaştırılmış çift yönlü düzen algoritmasının doğru sonuçlar üretmesi için atanır. Bu türler birbirini dışlar. Bu özniteliklerin kullanımı hakkında daha fazla bilgi için bkz. The Unicode Standard: Worldwide Character Encoding, Volumes 1 and 2, Addison-Wesley Publishing Company: 1991, 1992.
| CType2 adı | Değer | Anlam |
|---|---|---|
| Kuvvetli: | ||
| C2_SOLDANSAĞA | 0x1 | Soldan sağa. |
| C2_SAĞDANSOLA | 0x2 | Sağdan sola. |
| Zayıf: | ||
| C2_AVRUPANUMARASI | 0x3 | Avrupa sayısı, Avrupa rakamı. |
| C2_AVRUPAAYIRAÇI | 0x4 | Avrupa sayısal ayırıcısı. |
| C2_EUROPETERMINATOR | 0x5 | Avrupa sayısal sonlandırıcısı. |
| C2_ARABICNUMBER | 0x6 | Arapça numara. |
| C2_ORTAKAYIRACI | 0x7 | Ortak sayısal ayırıcı. |
| Nötr: | ||
| C2_BLOCKSEPARATOR | 0x8 | Blok ayırıcı. |
| C2_BÖLÜM AYIRICI | 0x9 | Segment ayırıcı. |
| C2_WHITESPACE | 0xA | Beyaz boşluk. |
| C2_DİĞERNEUTRAL | 0xB | Diğer nötrler. |
| Uygulanamaz: | ||
| C2_NOTAPPLICABLE | 0x0 | Gizli yön yok. |
Ctype3 türleri, genel metin işleme için veya standart C kitaplığı işlevleri için gereken POSIX türlerinin uzantıları için yer tutucular olarak tasarlanmıştır.
| CType3 adı | Değer | Anlam |
|---|---|---|
| C3_NONSPACING | 0x1 | Boşluksuz işaret. |
| C3_DİAKRİTİK | 0x2 | Aksansız özel işaret |
| C3_VOWELMARK | 0x4 | Sesli harf geçirgen olmayan işareti. |
| C3_SYMBOL | 0x8 | Sembol. |
| C3_KATAKANA | 0x10 | Katakana karakteri. |
| C3_HIRAGANA | 0x20 | Hiragana karakteri. |
| C3_YARIMGENİŞLİK | 0x40 | Yarım genişlikli karakter. |
| C3_FULLWIDTH | 0x80 | Tam genişlikli karakter. |
| C3_IDEOGRAPH | 0x100 | İdeografik karakter. |
| C3_KASHIDA | 0x200 | Arapça Keşide karakteri. |
| C3_ALPHA | 0x8000 | Tüm dil karakterleri (alfabetik, stil ve ideografik). |
| C3_NOTAPPLICABLE | 0x0 | Uygulanamaz. |
Unicode Standard'da açıklanan aşağıdaki aralıklar için bir Düzenleme Geliştirme Kiti (EDK) pVar indeks tanımları içerebilir.
| Karakter kümesi | Unicode Aralığı | Karakter kümesi | Unicode Aralığı |
|---|---|---|---|
| ASCII | 0x0—0x7f | Amerikan Ulusal Standartlar Enstitüsü (ANSI) | 0x0—0xff |
| ASCIIPrint | 0x20—0x7e | Latin1 | 0x20—0xff |
| Latin1Supp | 0xa0—0xff | LatinXA | 0x100—0x17f |
| LatinXB | 0x180—0x24f | IPAX | 0x250—0x2af |
| SpaceMod | 0x2b0—0x2ff | Birleştirme | 0x300—0x36f |
| Yunanca | 0x370—0x3ff | Temel Yunanca | 0x370—0x3cf |
| Yunanca Semboller | 0x3d0—0x3ff | Kiril | 0x400—0x4ff |
| Ermenice | 0x530—0x58f | İbranice | 0x590—0x5ff |
| BasicHebrew | 0x5d0—0x5ea | İbraniceXA | 0x590—0x5cf |
| İbraniceXB | 0x5eb—0x5ff | Arapça | 0x600—0x6ff |
| Temel Arapça | 0x600—0x652 | ArabicX | 0x653—0x6ff |
| Devanagari | 0x900—0x97f | Bengalce | 0x980—0x9ff |
| Gürmukhi | 0xa00—0xa7f | Guceratça | 0xa80—0xaff |
| Odiya | 0xb00—0xb7f | Tamil dili | 0xb80—0xbff |
| Teluga | 0xc00—0xc7f | Kannada dili | 0xc80—0xcff |
| Malayalam dili | 0xd00—0xd7f | Tay dili | 0xe00—0xe7f |
| Lao | 0xe80—0xeff | GeorgianX | 0x10a0-0xa0cf |
| BaskGürcü | 0x10d0—0x10ff | Jamo | 0x1100—0x11ff |
| LatinXAdd | 0x1e00—0x1eff | GreekX | 0x1f00—0x1fff |
| GenPunct | 0x2000—0x206f | Üstsimge | 0x2070—0x207f |
| Alt simge | 0x2080—0x208f | SuperSubscript | 0x2070—0x209f |
| Para birimi | 0x20a0—0x20cf | CombMarkSym | 0x20d0—0x20ff |
| LetterLike | 0x2100—0x214f | SayıFormları | 0x2150—0x218f |
| Oklar | 0x2190—0x21ff | MathOps | 0x2200—0x22ff |
| MiscTech | 0x2300—0x23ff | CtrlPictures | 0x2400—0x243f |
| OptCharRecog | 0x2440—0x245f | EnclAlphaNum | 0x2460—x24ff |
| Kutu Çizimi | 0x2500—0x257f | BlockElement | 0x2580—0x259f |
| GeometShapes | 0x25a0—0x25ff | Çeşitli Semboller | 0x2600—0x26ff |
| Dingbats | 0x2700—0x27bf | CJKSymPunct | 0x3000—0x303f |
| Hiragana | 0x3040—0x309f | Katakana | 0x30a0—0x30ff |
| Bopomofo | 0x3100—0x312f | HangulJamo | 0x3130—0x318f |
| CJLMisc | 0x3190—0x319f | EnclCJK | 0x3200—0x32ff |
| CJKCompatibl | 0x3300—0x33ff | Han | 0x3400—0xabff |
| Hangul | 0xac00—0xd7ff | UTF16Lead karakter kodlaması | 0xd800—0xdbff |
| UTF16Trail | 0xdc00—0xdfff | ÖzelKullanım | 0xe000—0xf800 |
| CJKCompIdeog | 0xf900—0xfaff | AlphaPres | 0xfb00—0xfb4f |
| ArabicPresA | 0xfb50—0xfdff | CombHalfMark | 0xfe20—0xfe2f |
| CJKCompForm | 0xfe30—0xfe4f | SmallFormVar | 0xfe50—0xfe6f |
| ArabicPresB | 0xfe70—0xfefe | HalfFullForm | 0xff00—0xffef |
| Özel Teklifler | 0xfff0—0xfffd |