OLEおよびレジストリ

OLEおよびレジストリ

うわー、今私たちは再びレジストリにしています。その原料をカバーするために多くの、ちょうど、OLEの基本のハンドルを取得することでした。私が述べたように、OLEは広範囲には、レジストリで動作します。ときに、潜在的なサーバーアプリケーションとしてOLEでアプリケーションレジスタ自体は、この登録プロセスは、レジストリ内のエントリの番号を追加する構成されます。 OLEアプリケーションは、ActiveXコントロールなど、これらのエントリは比較的単純だとフォローが容易です。もっと複雑なのOLEアプリケーションの例としてMicrosoft Wordを取るには、レジストリで、一般的に理解することは困難なエントリが数百人いる。の単純なOLEコントロールを見て、ActiveXコントロールのカレンダーコントロール10.0は、Microsoftからアプリケーションを利用可能と呼ばれるしましょう( Office XPの一部)としては、ユーザーが文書にカレンダーを挿入することができます。はい、カレンダーコントロール10.0 Word文書にエンベッドしている(また、ドキュメントの他の多くの種類に)それを埋め込むことができます。は、典型的なこの使い方は、非常に便利ですが、文書内のカレンダーを含めるために必要な方法を何回もだと思う。チェックアウト図6.4 Wordやカレンダーコントロール10.0一緒に仕事をしてください。私はこのフィギュアのために使用される文書では、実際の日付は、私は、このチュートリアルを書いて使用されます。

サイズと配置...

  

カレンダーコントロール10.0簡単にサイズを変更することができます。ただし、ActiveXコントロールの一部のバージョンも同様に、Wordに埋め込まれた機能はありません。彼らは困難にコントロールのメインウィンドウのサイズになります基になるウィンドウを作成することがあります。このため、組込み制御、予期しない方法でその表示サイズを変更する傾向にある。これは受け入れられない現象ですが、私を追加する可能性があります場合は、サイズを変更することは困難であるオブジェクトは、まず、小さくして、素早く前に、Wordのサイズを変更することができますをクリックして、基になるベースウィンドウにするために、問題のコントロールのサイズは、この:試しに埋め込みます。ので、必要に応じて、コントロールのウィンドウのサイズを変更することができますこれは、ベースウィンドウをロックします。ベースウィンドウ内のどこでも単純なダブルクリックしてMicrosoftのカレンダーコントロール10.0、通常のディスプレイを復元としては、ドロップダウンリストボックスを使用して希望する他のドキュメントやアプリケーションとの相互作用の多くは、月と年を設定することができます。それにもかかわらず、なぜ他の相互作用を望む場合は、ユーザーが、?簡単な! 1つの典型的な例を埋め込むCalendarコントロールをWebページに、そのアプリケーションは、Webブラウザが文書に挿入されます。もう一つの例を埋め込むカレンダーコントロールへの電子メールメッセージに挿入されます。鼎!出掛けるの光ですか?メールあなたのチームにメールを誰もがカレンダーを適切な日付表示を備えた仮想会議の詳細に埋め込まれたオブジェクトのプロパティを変更することができます。メッセージが含まれます。通常、オブジェクトのプロパティを設定する2つの方法があります。最初の(オタク図6.5参照)は、プログラムのインターフェイスを使用することです。また、(図6.6)を参照してオブジェクトのオブジェクトのプロパティ]ダイアログボックスを使用することができます。プログラムのインターフェイスを使用可能なすべてのプロパティにアクセスする一方、オブジェクトのプロパティ]ダイアログボックスで選択したオブジェクトのプロパティをすばやく簡単に変更できます。

そこで、我々は、Microsoftカレンダーコントロール10.0 OLEサーバーアプリケーションがActiveXコントロールとして実装されている。 Calendarコントロールのためのレジストリエントリを見てみましょう。最初にHKEY_LOCAL_MACHINEのエントリ\ Software \ Classesの\のCLSIDです。これらのエントリは多くのOLEインターフェイスを定義:

(8E27C92B - 1264 - 101C - 8A2F - 040224009C02)] @ ="カレンダーコントロール10.0"

ライン上のハイブ(します。HKEY_LOCAL_MACHINEている)、キー(ソフトウェア)は、サブキー(クラス\ CLSID)は、これらのキーを含む可能性のある値が続きます。の形式で値を@ =データは、デフォルト値のエントリを示すすべてのレジストリキーおよびサブキーのデータが見つかりました。

Windows XPのCLSIDを注意同一のWindows NTの2000年のCLSIDです。驚いたことは?として、CLSIDは、アプリケーションからではなく、オペレーティングシステムになると、することはしないでください。また、カレンダーコントロール10.0、おそらくカレンダーコントロール9.0と同じCLSIDをしています。最初のサブキーは、カレンダーコントロール10.0サーバーのCLSIDが含まれます。ただし、カレンダーコントロールの他のバージョン(存在する場合は、実質的に異なっていたこのCLSID 8E27C92B - 1264 - 101C - 8A2F - 040224009C02する)別のCLSIDがあります起こります。デフォルトのデータ変数を文字列は、プログラムの記述が含まれます。通知は、この文字列は、レジストリで、HKEY_LOCAL_MACHINE \ Software \ Classesの2番目のセクションで発見さ\ MSCAL.Calendar.7、次に説明する。

(8E27C92B - 1264 - 101C - 8A2F - 040224009C02)\ @ ="8E27C92B - 1264 - 101C - 8A2F - 040224009C02"のCLSID

Windowsは、アプリケーション用の短い人が読める名前については、AuxUserTypeサブキーを使用します。メニュー、両方を開く定期的に、これらの短い名前を使用します。マイクロソフトでは、AuxUserTypeの名前ではなく、15以上の文字に制限されることをお勧めします。エントリInprocHandler32、どのようにシステムに指示プロセスハンドラが使用されます。

(8E27C92B - 1264 - 101C - 8A2F - 040224009C02)\ InprocServer32 ="Ç @:\プログラムファイル\ Microsoft Office \ Office10 \ MSCAL.OCX"

多くのアプリケーションをInprocServer.dllを使用しそのプロセスハンドラでは、ただし、これは必須ではありません。もう1つの一般に使用されるプロセスハンドラMAPI32.DLLは、多くの電子メールで使用されるオブジェクトである:Windows XPでは、[挿入のエントリで使用するために対象システムは、アプリケーションでは、挿入する新しいオブジェクトの挿入のリストに表示されることを示しますが有効になっダイアログボックス:

(8E27C92B - 1264 - 101C - 8A2F - 040224009C02)\ [挿入= @""

次のエントリは、アプリケーションの完全なパスと実行可能ファイル名修飾が含まれます。この文字列はREG_EXPAND_SZので、置換変数を使用していないからだ:

(8E27C92B - 1264 - 101C - 8A2F - 040224009C02)\ MiscStatus @ ="131473"

MiscStatus注意:値またはビット加えてバイナリ、ビット演算を行うには最も簡単な方法は、単に値を追加して使用して組み合わせる。たとえば、次のフラグをアプリケーション:"オブジェクト"(131072)"、"(256)"オブジェクトインサイドアウト"(128)"オブジェクトをリンクすることはできませんアクティブオブジェクトのときに表示されているクライアントのサイトの最初のセット"内部(16)、と"するときは、オブジェクトの"(1)再構成されます(131072 + 256 + 128 + 16 + 1)= 131473 MiscStatusは、まさに我々のカレンダーにされている値での値を格納するサイズを変更するControlオブジェクトのMiscStatus。いくつかのエントリでは、Printableのサブキーには(印刷すべてのオブジェクトが見つからない場合は、iPrintメソッドをサポートするOLEオブジェクトを表すだけでは、iPrintのメソッドを使用して印刷されます):

(8E27C92B - 1264 - 101C - 8A2F - 040224009C02)\印刷= @""

が挿入される可能性のあるオブジェクトでは、ある(ProgIDは"プログラムの識別子のための速記"と関連付けられたProgIDの値)である必要があります。この値は、短い形式の名前、タイプ、および数値(数値で構成され、多くの場合、バージョン番号です):

(8E27C92B - 1264 - 101C - 8A2F - 040224009C02)\ @ = ProgIDは"MSCAL.Calendar.7"

レジストリのセクションではこの名前を()で、以上のレジストリの値をこのオブジェクトに格納される次のエントリを参照してください:作成される

(8E27C92B - 1264 - 101C - 8A2F - 040224009C02)\ @ =""動詞

動詞のアクションの種類は、オブジェクトを取る可能性を示す。常に連続してレジストリ内の数字は、動詞のエントリに3つのコンポーネントとして、ここに示すようにあります:

(8E27C92B - 1264 - 101C - 8A2F - 040224009C02)\動詞\ 0 = @"&Edit]を、0,2"

このサンプルでは動詞、編集、3つのことを示しています。まず、テキストは、メニューで使用され、&を編集します。 &ことを示す文字が強調され、ホットキーの値として使用される次の。

あるカレンダーコントロール10.0 OLEオブジェクトは、レジストリの2番目のセクションがあります。このセクションでは、HKEY_LOCAL_MACHINE、で\ Software \ Classesの、MSCAL.Calendar.7と呼ばれます。MSCAL.Calendarサブキーで、2つの可能な値のエントリです。下記のいずれかが表示されます:

レジストリ[HKEY_LOCAL_MACHINE \ Software \ Classesの\ MSCAL.Calendar] @ ="カレンダーコントロール10.0"

最初の値エントリは、("カレンダーコントロール10.0")は、オブジェクトの挿入]ダイアログボックスの挿入リストで使用される名前が含まれ、デフォルト値(=)は@です。 2番目の値は、いくつかのオブジェクトを使用することは、16進値として表さフラグの編集が含まれてEditFlagsです。CLSIDサブキーは、オブジェクトのCLSIDが含まれています:

レジストリ[HKEY_LOCAL_MACHINE \ Software \ Classesの\ MSCAL.Calendar \のCLSID] @ ="(8E27C92B - 1264 - 101C - 8A2F - 040224009C02)"

が存在する場合は、次のサブキー(これは、Microsoft OLE DocObject技術)は、OLEオブジェクトの機能についての情報が含まれる作品:

レジストリ[HKEY_LOCAL_MACHINE \ Software \ Classesの\ MSCAL.Calendar.7 \ DocObject] @ ="0"

Windows 2000およびWindows XPの場合、次のエントリに使用するために対象システムは、アプリケーションでは、挿入する新しいオブジェクト]ダイアログボックスの挿入の一覧に表示されなければならないことを示します:

レジストリ[HKEY_LOCAL_MACHINE \ Software \ Classesの\ MSCAL.Calendar \ [挿入] @ =""

このプロトコルは、キーのOLE 1コンテナ(クライアント)アプリケーション:互換性のために使用されます

レジストリ[HKEY_LOCAL_MACHINE \ Software \ Classesの\ MSCAL.Calendar \プロトコル] @ =""

あるプロトコルの1つのサブキーをStdFileEditingと呼ばれます。 StdFileEditing内には、アイテムの数を、ここで示されています:

レジストリ[HKEY_LOCAL_MACHINE \ Software \ Classesの\ Word.Document.6 \プロトコル\ StdFileEditinグラム] =""@

StdFileEditingのデフォルトのエントリは空の文字列です。

レジストリ[HKEY_LOCAL_MACHINE \ Software \ Classesの\ Word.Document.6 \プロトコル\ StdFileEditinグラム\サーバー] @ ="Ç:\ \ PROGRA〜1 \ \にMicros〜2 \ \"Winword.exeを

StdFileEditingの最初のサブキーは、サーバーのサブキーです。内部サーバーの既定の文字列の実行可能ファイルは、サーバーの完全修飾名を格納しています。 (Calendarコントロールは、このエントリが存在しないので、Word用のエントリを示すようにしました。)ので、この文字列はREG_SZ値は%SystemRoot%のような、それのように任意の置換可能な変数を使用しないでください。

レジストリ[HKEY_LOCAL_MACHINE \ Software \ Classesの\ MSCAL.Calendar \プロトコル\ StdFileEditing \動詞] @ =""

StdFileEditingで次のサブキー動詞です。動詞の内1つまたは複数のサブキーの番号は、数字の0と連続している必要が開始されます。各動詞には、OLEアプリケーションのメニューに含まれるが、ここに示すようを使用します:

レジストリ[HKEY_LOCAL_MACHINE \ Software \ Classesの\ MSCAL.Calendar \プロトコル\ StdFileEditing \動詞\ 0] @ ="&Edit]を"

この動詞は、[編集]メニューの選択です。テキストは、メニューで使用して編集されます。 &は、文字が強調され、ホットキーの値として使用される次の最後に、バージョンに依存しないProgIDが作成されることを示します。場合であっても、コントロールが更新されると、このエントリは変更されません:

します。HKEY_LOCAL_MACHINE \ Software \ Classesの\のCLSID \(8E27C92B - 1264 - 101C - 8A2F - 040224009C02)\ @ =""MSCAL.Calendar VersionIndependentProgId

ProgIDのと同様に、これはすべてのバージョンを参照せずに、プログラムを識別します。

記事Dessue Mathenes提出


免責事項:弊社のウェブサイトは、この資料の内容については責任を負いません。 Webarticles無料の情報リソースです。
重要: この記事は、"OLEおよび"レジストリの自動ソフトウェアによって翻訳された。大変申し訳ございませんが発生した可能性があります任意のスペルミスを感じている。お客様のご理解いただき、ありがとうございます。


Online: 257 users browsing the articles directory