
Last update
Last update 2001.9.9
LPDWORD DdeInitialize()
XTYP_REGISTER DDEMLサーバアプリケーションがサービス名を登録したとき、受け取る。
などややこしいんですね。VC++にもDDEのクラスは存在しないため、ある程度まとめてやらないといけません。
DDEがまとまれば、NETSCAPEとの対話がはじめられます。IEも非公式と言われていますがじつは基本的に対応しており、WWW_URLEchoなどの語でマイクロソフト(英語)のサイトを検索してみると、32ビット版IE3はバグでWWW_URLEchoに対応していないとかいう情報が検索できます。(笑)
(97年頃の)最近、DDEのだいたいの使い方がわかりました。うむ。
DDEは、サーバとクライアントで構成され、クライアントがサーバにあるトピック名を呼び出してサービスを利用する形です。
NETSCAPE(Spyglassの決めたブラウザ標準DDE?)の場合、毎回サービス名、トピック名で接続するようで、サーバからクライアントに接続するということはできないため、URLEchoなどではクライアントもサービス名を持ち、サーバにならなければなりません。
DDEの非常に略した使い方の解説は下のほうにあります。
Mozillaでの対応状況は、Bug
25699 - DDE implementation を参照してください。
Netscapeのサービス名は、NETSCAPE
Mozillaのサービス名は、Mozilla (Mozilla 0.9.1以降で対応)
Netscape 6.1は?
Netscape項が、Serverとあるのは、アプリケーションからNetscapeに送る。
Clientとあるのは、Netscapeからアプリケーションに送られてくる。(サーバ機能を持つ必要がある)
| トピック名 | Netscape | トランザクションタイプ | Item(引数) (文字列) | 戻り値(基本的に文字列) | 説明 |
|---|---|---|---|---|---|
| WWW_Active | Server | XTYP_REQUEST | dwWindowID,dwFlags | (DWORD)dwActivatedID | アクティブにする |
| WWW_Alert | Client | XTYP_REQUEST | qcsMessage,dwType,dwButtons
dwType 0x0 エラー 0x1 ワーニング 0x2 質問 0x3 ステータス dwButtons 0x0 OK 0x1 OK/Cancel 0x2 Yes/No 0x3 Yes/No/Cancel |
dwAnswer
0x0 error 0x1 OK 0x2 Cancel 0x3 No 0x4 Yes |
該当トピックなし |
| WWW_BeginProgress | Client | XTYP_REQUEST | dwWindowID, qcsInitialMessage | dwTransactionID | 読み込み開始通知 |
| WWW_CancelProgress | Server | XTYP_POKE | dwTransactionID | 読み込みキャンセル | |
| WWW_EndProgress | Client | XTYP_POKE | dwTransactionID | 読み込み終了通知 | |
| WWW_Exit | Server | XTYP_POKE | WWW_Exit | 終了させる | |
| WWW_GetFrameParent | Server | XTYP_REQUEST | dwWindowID of a browser window or frame cell | dwWindowID 親フレーム | 親フレーム通知 |
| WWW_GetWindowInfo | Server | XTYP_REQUEST | dwWindowID | qcsURL,qcsTitle, qcsFrameName | ウインドウ情報取得 |
| WWW_ListFrameChildren | Server | XTYP_REQUEST | dwWindowID representing a browser window or frame cell. | dwWindowIDsの配列
(DWORD) |
フレーム一覧取得 |
| WWW_ListWindows | Server | XTYP_REQUEST | WWW_ListWindows | dwWindowIDsの配列
(DWORD) |
ウインドウ一覧取得 |
| WWW_MakingProgress | Client | XTYP_REQUEST | dwTransactionID, qcsMessage, dwProgress | blStopLoading | |
| WWW_OpenURL | Server | XTYP_REQUEST | qcsURL,[qcsSaveAs], dwWindowID,dwFlags, [qcsPostFormData], [qcsPostMIMEType], [csProgressServer] | dwServicingWindowID
(文字列ではなくDWORD数値 IE対応せず) |
URLページを開く |
| Client | XTYP_REQUEST | qcsURL,[qcsSaveAs], dwWindowID,dwFlags, [qcsPostFormData], [qcsPostMIMEType], [csProgressServer] | dwServicingWindowID | ヘルパーアプリでURLを開くための通知 | |
| WWW_ParseAnchor | Server | XTYP_REQUEST | qcsAbsoluteURL, qcsRelativeURL | qcsCombinedURL | 相対URLを絶対URLに変換 |
| WWW_QueryURLFile | Server | XTYP_REQUEST | qcsFileName | qcsURL | ファイルを開く |
| WWW_QueryViewer | Client | XTYP_REQUEST | qcsURL,qcsMIMEType | qcsFileName | |
| WWW_RegisterProtocol | Server | XTYP_REQUEST | qcsServer,qcsProtocol | blRegistered | プロトコルタイプ(http:など)DDEヘルパーの登録 |
| WWW_RegisterURLEcho | Server | XTYP_POKE | qcsServer(サービス名) | 移動すると通知するよう登録する(IE3は非対応) | |
| WWW_RegisterViewer | Server | XTYP_REQUEST | qcsServer,qcsMIMEType, dwFlags | blRegistered | MIMEタイプDDEヘルパーの登録 |
| WWW_RegisterWindowChange | Server | XTYP_REQUEST | qcsServer,dwWindowID | dwMonitoringWindowID | WWW_WindowChangeを受け取るための登録 |
| WWW_SetProgressRange | Client | XTYP_POKE | dwTransactionID, dwMaximum | ||
| WWW_ShowFile | Server | XTYP_REQUEST | qcsFileName, qcsMIMEType, dwWindowID,qcsURL | dwServicingWindowID | |
| WWW_UnRegisterProtocol | Server | XTYP_REQUEST | qcsServer, qcsProtocolType | blUnregistered | WWW_RegisterProtocolの登録を解除する |
| WWW_UnRegisterURLEcho | Server | XTYP_POKE | qcsServer | URL通知の登録を解除するのだが。 | |
| WWW_UnRegisterViewer | Server | XTYP_REQUEST | qcsServer,qcsMIMEType | blUnregistered | |
| WWW_UnRegisterWindowChange | Server | XTYP_REQUEST | qcsServer,dwWindowID | blUnregistered | |
| WWW_URLEcho | Client | XTYP_POKE | qcsURL,qcsMIMEType, dwWindowID, [qcsReferrer] | 読み込んだURLの通知
(IE3はバグのため非対応) |
|
| WWW_Version | Server | XTYP_REQUEST | WWW_Version | dwAPIVersion | |
| WWW_ViewDocFile | Client | XTYP_POKE | qcsFileName,qcsURL, qcsMIMEType, dwWindowID | ||
| WWW_WindowChange | Client | XTYP_POKE | dwWindowID, dwWindowFlags, [dwX],[dwY], [dwCX],[dwCY] | Windowの状態の変化の通知 | |
| Server | XTYP_POKE | dwWindowID, dwWindowFlags, [dwX],[dwY], [dwCX],[dwCY] |
Dynamic Data Exchange(動的データ交換)
昔の、アプリケーション間で通信する手段。今はOLEに置き換わっているらしく、VC++のマニュアルなどを検索しても英語でしか記述されていないが、簡単なのでよく使われるとか。
Netscape Navigatorを操作するために使うらしいが、現在資料が皆無か・・・(上記参照)。
Internet ExplorerもNetscape互換のDDEを持つらしい。動いたが多少違うな。
どちらも現在OLEで操作できるが(Navigatorは、できないのか?)、その方法もよくわからない。(これがOLEオートメーションというものらしい)
でも、OLEとは違うような気がする。
Win32 API関連の書籍にわけのわからない解説を見ることもできるが、やはりよくわからない。
DDEは、項目、トピック、サービスがあり、Netscapeの場合サービス名がNETSCAPE、トピックがWWW_OpenURLというような関数の名前のもの。
引数などは文字列として渡しているが、これはNetscapeに限ったことか?
Netscape's
DDE Implementation (netscape)
Netscape's
DDE Implementation (iPlanet) 生きてました iPlanet
for developers - Communicator FAQs にOLEの制御方法もあるかも
#include <ddeml.h>
DdeInitialise(略); // DDEの初期化 DdeConnect(略); // Netscape Navigatorのとあるトピックに接続する // Netscapeに要求を送る DdeDisconnect(略); // Netscape Navigatorから切断する DdeUninitialize(略); // DDEの終了処理
オブジェクト指向用語。
実体。変数というか、構造体なのかな。ゲームのザコキャラがたくさん出てくるが、その1つ1つがインスタンスという感じで。それを動かすプログラムは1つだが、動いているキャラクターはたくさんありますね。
インスタンスとオブジェクトは、ほとんど同じ意味を持つ。
Windows開発用語。
拡張子tlbなどのふぁいるで、COMの情報が書かれている、といってもなんのことやら・・・。C言語でいうヘッダファイルのようなもの。ただし、odlという拡張子のファイルをコンパイルして作る。解説は英語だった。