昨日の続きです。
原題: Gecko Info for Windows Accessibility Vendors
訳題: Windows アクセシビリティベンダー向け Gecko 情報
原文: 青色表示
訳文: 黒色表示
校正文: 赤色表示
校正対象範囲: 黒色太字表示
*n(=int)校正コメント:赤色表示
How to Find a Gecko Window
All Mozilla windows have the window class called "MozillaWindowClass". In addition, you can find out whether a window is a content window or a XUL UI window. This is done by checking the low bit of the control ID, which is returned when you make the Win32 API call controlId = ::GetWindowLong(hWnd, GWL_ID) & 1. If the result is 0, this is a UI window; if it is 1, then this is a content window. At this point, embedding clients don't use XUL, so for them you only need to find the top MozillaWindowClass window. Fortunately, you won't need separate logic for all different clients. Whenever you see a MozillaWindowClass window focused, keep moving to the first child if it has a control ID of 0. If it has a control ID of 1, find the first ancestor that also has a control ID of 1. This is where you should start when using MSAA to get the content tree for a Mozilla application.
Gecko ウィンドウを見つける方法
すべての Mozilla のウィンドウは "MozillaWindowClass" と呼ばれるウィンドウクラスを備えています。その上//→それに加えて、//ウィンドウがコンテンツウィンドウであるか、XUL UI ウィンドウであるかを見分けるのは可能です。これは、コントロール ID のロービットをチェックすることで分かります。Win32 API に controlId = ::GetWindowLong(hWnd, GWL_ID) & 1 を呼出しさせる時、ロービットは//→ロービットが//返されます。もし結果が 0 であると、UI ウィンドウであり、もし 1 だとコンテンツウィンドウです。この時点では、埋め込まれたクライアントは XUL を使用しません。そこでクライアントのために 先頭の Mozilla ウィンドウクラスウィンドウを見つけさえすればいい事になります。幸運なことに、すべての異なるクライアントのために別個のロジックは必要となりません。 Mozilla ウィンドウクラスウィンドウにフォーカスがある場合はいつも//→必ず//、コントロール ID 0 を備えていれば最初の子まで移動を続けて下さい。もし、コントロール ID 1 を備えていれば、同様に//→同じように//コントロール ID 1 を備えている最初の祖先を見つけて下さい。MSAA を Mozilla アプリケーションのためにコンテンツツリーを取得するために使用する時は、ここから始めます//→MSAA を使用している時は、Mozilla アプリケーションへここでコンテンツツリーの取得を開始すべきです*1//。
→*1:最初の訳だと何を開始するか不明;start to get the content ..... とする。
原題: Gecko Info for Windows Accessibility Vendors
訳題: Windows アクセシビリティベンダー向け Gecko 情報
原文: 青色表示
訳文: 黒色表示
校正文: 赤色表示
校正対象範囲: 黒色太字表示
*n(=int)校正コメント:赤色表示
How to Find a Gecko Window
All Mozilla windows have the window class called "MozillaWindowClass". In addition, you can find out whether a window is a content window or a XUL UI window. This is done by checking the low bit of the control ID, which is returned when you make the Win32 API call controlId = ::GetWindowLong(hWnd, GWL_ID) & 1. If the result is 0, this is a UI window; if it is 1, then this is a content window. At this point, embedding clients don't use XUL, so for them you only need to find the top MozillaWindowClass window. Fortunately, you won't need separate logic for all different clients. Whenever you see a MozillaWindowClass window focused, keep moving to the first child if it has a control ID of 0. If it has a control ID of 1, find the first ancestor that also has a control ID of 1. This is where you should start when using MSAA to get the content tree for a Mozilla application.
Gecko ウィンドウを見つける方法
すべての Mozilla のウィンドウは "MozillaWindowClass" と呼ばれるウィンドウクラスを備えています。その上//→それに加えて、//ウィンドウがコンテンツウィンドウであるか、XUL UI ウィンドウであるかを見分けるのは可能です。これは、コントロール ID のロービットをチェックすることで分かります。Win32 API に controlId = ::GetWindowLong(hWnd, GWL_ID) & 1 を呼出しさせる時、ロービットは//→ロービットが//返されます。もし結果が 0 であると、UI ウィンドウであり、もし 1 だとコンテンツウィンドウです。この時点では、埋め込まれたクライアントは XUL を使用しません。そこでクライアントのために 先頭の Mozilla ウィンドウクラスウィンドウを見つけさえすればいい事になります。幸運なことに、すべての異なるクライアントのために別個のロジックは必要となりません。 Mozilla ウィンドウクラスウィンドウにフォーカスがある場合はいつも//→必ず//、コントロール ID 0 を備えていれば最初の子まで移動を続けて下さい。もし、コントロール ID 1 を備えていれば、同様に//→同じように//コントロール ID 1 を備えている最初の祖先を見つけて下さい。MSAA を Mozilla アプリケーションのためにコンテンツツリーを取得するために使用する時は、ここから始めます//→MSAA を使用している時は、Mozilla アプリケーションへここでコンテンツツリーの取得を開始すべきです*1//。
→*1:最初の訳だと何を開始するか不明;start to get the content ..... とする。