home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 March / VPR9703A.ISO / OLS / Win31 / HT219 / HT219.LZH / HTAPI.H < prev    next >
Text File  |  1995-02-08  |  26KB  |  576 lines

  1. //    HTAPI.H Application Programing Interface of 秀Term
  2. //
  3. //    copyright(c) 1992 by 斉藤秀夫(秀まるお)、NIFTY-Serve PEH00775
  4. //
  5. //    このヘッダファイルはwindows.hより後ろに#includeしてください。
  6.  
  7. #define WM_HIDETERM_GETVERSION            (WM_USER+0)
  8. #define WM_HIDETERM_GETBUFFER            (WM_USER+1)
  9. #define WM_HIDETERM_SENDDATA            (WM_USER+2)
  10. #define WM_HIDETERM_SETRECEIVER            (WM_USER+3)
  11. #define WM_HIDETERM_ENDRECEIVER            (WM_USER+4)
  12. #define WM_HIDETERM_RECEIVED            (WM_USER+5)
  13. #define WM_HIDETERM_WRITEBUFFER            (WM_USER+6)
  14. #define WM_HIDETERM_WRITEBUFFER2        (WM_USER+7)
  15. #define WM_HIDETERM_EXECSCRIPT            (WM_USER+8)
  16. #define WM_HIDETERM_QUERY_ONLINE        (WM_USER+11)
  17. #define WM_HIDETERM_SETRECEIVER2        (WM_USER+13)
  18. #define WM_HIDETERM_SETIDLENOTIFICATION    (WM_USER+14)
  19. #define WM_HIDETERM_GETVAR                (WM_USER+15)
  20. #define WM_HIDETERM_SETVAR                (WM_USER+16)
  21. #define WM_HIDETERM_SETBINARYMODE        (WM_USER+18)
  22. #define WM_HIDETERM_REGISTADDIN            (WM_USER+20)
  23. #define WM_HIDETERM_SETADDINHEIGHT        (WM_USER+22)
  24. #define WM_HIDETERM_ADDCOMMAND1            (WM_USER+23)
  25. #define WM_HIDETERM_ADDCOMMAND2            (WM_USER+24)
  26. #define WM_HIDETERM_ADDCOMMAND3            (WM_USER+25)
  27. #define WM_HIDETERM_ADDCOMMAND4            (WM_USER+26)
  28. #define WM_HIDETERM_ADDCOMMAND5            (WM_USER+27)
  29. #define WM_HIDETERM_ADDCOMMAND6            (WM_USER+28)
  30. #define WM_HIDETERM_ADDCOMMAND7            (WM_USER+29)
  31. #define WM_HIDETERM_CAPTUREMENU            (WM_USER+30)
  32. #define WM_HIDETERM_UNCAPTUREMENU        (WM_USER+31)
  33. #define WM_HIDETERM_SETSENDFILTER        (WM_USER+32)
  34. #define WM_HIDETERM_ENDSENDFILTER        (WM_USER+33)
  35. #define WM_HIDETERM_SENDREPORT            (WM_USER+6)
  36. #define WM_HIDETERM_EXECSCRIPT2            (WM_USER+34)
  37.  
  38. #define IDM_HIDETERM_USER    1000
  39.  
  40.  
  41. #if 0
  42.  
  43. 1.WM_HIDETERM_GETVERSION
  44.  
  45.    機能     このメッセージは、秀Termのバージョンを調べるときに使わ
  46.           れます。
  47.           アプリケーションは、SendMessageを使ってこのメッセージを
  48.           秀Termに送ります。
  49.  
  50.           パラメータ    説明
  51.           wParam      使われません。
  52.  
  53.           lParam      使われません。
  54.  
  55.    リターン値  秀Termのメジャー バージョン番号とマイナー バージョン番号
  56.           から構成される整数値です。上位バイトがマイナー バージョ
  57.           ン番号を、下位バイトがメジャーバージョン番号を表します。
  58.           バージョン番号は16進で帰ってきます。例えばVer1.25の場
  59.           合は0x2501という値が帰ってきます。(WindowsのGetVersion
  60.           もそうです)
  61.  
  62. 2.WM_HIDETERM_GETBUFFER
  63.  
  64.    機能     このメッセージは、秀Termのバックスクロールバッファの文字
  65.           列を、行単位で指定のバッファにコピーします。
  66.           アプリケーションは、SendMessageを使ってこのメッセージを
  67.           秀Termに送ります。
  68.  
  69.           パラメータ    説明
  70.           wParam      コピーされる文字列の行を指定します。
  71.                    0は最新の行を意味し、正数nはn行前の
  72.                    文字列を意味します。
  73.  
  74.           lParam      下位ワードに、データのコピー先のバッ
  75.                    ファのハンドルを指定します。ここに指定
  76.                    するバッファは、81バイト以上のサイズ
  77.                    を持ち GMEM_DDESHARE属性で確保されてい
  78.                    なければなりません。
  79.  
  80.    リターン値  実際にコピーされた文字列のバイト数になります。
  81.           文字列には終端として'\0'(値0)が付きますが、'\0'は、この
  82.           値に含まれません。
  83.  
  84. 3.WM_HIDETERM_SENDDATA
  85.  
  86.    機能     このメッセージは、指定バッファ内の文字列を秀Termの通信
  87.           ポートに直接送信します。
  88.           アプリケーションは、SendMessageを使ってこのメッセージを
  89.           秀Termに送ります。
  90.  
  91.           パラメータ    説明
  92.           wParam      送信する文字列のバイト数を指定します。
  93.                    ('\0'で終端しない言語もあるかも?)
  94.  
  95.           lParam      下位ワードに、送信する文字列を格納した
  96.                    バッファのハンドルを指定します。ここに
  97.                    指定するバッファは、 GMEM_DDESHARE属性
  98.                                        で確保されていなければなりません。
  99.  
  100.    リターン値  実際に送信された文字列のバイト数になります。
  101.  
  102. 4.WM_HIDETERM_WRITEBUFFER , WM_HIDETERM_WRITEBUFFER2
  103.  
  104.    機能     このメッセージは、指定バッファ内の文字列を秀Termのウィ
  105.           ンドウに表示します。通信ポートには出力しません。
  106.           アプリケーションは、SendMessageを使ってこのメッセージを
  107.           秀Termに送ります。
  108.  
  109.           WRITEBUFFERはウィンドウとログの両方に出力し、
  110.           WRITEBUFFER2はウィンドウにだけ出力します。
  111.           パラメータ    説明
  112.           wParam      送信する文字列のバイト数を指定します。
  113.                    ('\0'で終端しない言語もあるかも?)
  114.  
  115.           lParam      下位ワードに、送信する文字列を格納した
  116.                    バッファのハンドルを指定します。ここに
  117.                    指定するバッファは、 GMEM_DDESHARE属性
  118.                                       で確保されていなければなりません。
  119.  
  120.    リターン値  なし
  121.  
  122. 5.WM_HIDETERM_SETRECEIVER
  123.  
  124.    機能     このメッセージは、秀Termが通信ポートから文字列を受信した
  125.           場合にそのメッセージをパラメタで指定されたウィンドウにも
  126.           通知するように指示します。
  127.  
  128.           通知の際にはWM_HIDETERM_RECEIVEDメッセージが使われま
  129.           す。
  130.           通知を終わらせる場合はWM_HIDETERM_ENDRECEIVERメッセージ
  131.           を使います。
  132.  
  133.           WM_HIDETERM_SETRECEIVERで指定できる通知先ウィンドウは
  134.           Version2.03から10個まで受け付けるようになりました。
  135.  
  136.           パラメータ    説明
  137.           wParam      メッセージを受信するウィンドウのハンド
  138.                    ルを指定します。
  139.  
  140.           lParam      下位ワードが0の場合は秀Termは受信した
  141.                    文字列を自分のウィンドウに表示しますが
  142.                    1の場合は秀Term側の画面表示をしなくな
  143.                    ります。
  144.  
  145.    リターン値  成功した場合にTRUEを返します。既に他のアプリによって
  146.           WM_HIDETERM_SETRECEIVERされている場合はエラーとなり
  147.           FALSEが返ります。
  148.  
  149. 6.WM_HIDETERM_SETRECEIVER2
  150.  
  151.    機能     このメッセージは、秀Termが通信ポートから文字列を受信した
  152.           場合にそのメッセージをパラメタで指定されたウィンドウにも
  153.           通知するように指示します。WM_HIDETERM_SETRECEIVERと違い、
  154.           改行を受信するか、または80桁受信するごとに1行分をまと
  155.           めて通知します。
  156.  
  157.           通知の際にはWM_HIDETERM_RECEIVEDメッセージが使われま
  158.           す。
  159.           通知を終わらせる場合はWM_HIDETERM_ENDRECEIVERメッセージ
  160.           を使います。
  161.  
  162.           WM_HIDETERM_SETRECEIVERと同様、10個まで受信側を指定
  163.           できます。
  164.  
  165.           パラメータ    説明
  166.           wParam      メッセージを受信するウィンドウのハンド
  167.                    ルを指定します。
  168.  
  169.           lParam      下位ワードが0の場合は秀Termは受信した
  170.                    文字列を自分のウィンドウに表示しますが
  171.                    1の場合は秀Term側の画面表示をしなくな
  172.                    ります。
  173.  
  174.    リターン値  成功した場合にTRUEを返します。既に他のアプリによって
  175.           WM_HIDETERM_SETRECEIVERされている場合はエラーとなり
  176.           FALSEが返ります。
  177.  
  178. 7.WM_HIDETERM_ENDRECEIVER
  179.  
  180.    機能     WM_HIDETERM_SETRECEIVERまたはWM_HIDETERM_SETRECEIVER2で設
  181.           定した状態を解除します。
  182.  
  183.           Version 2.03から、wParamに、解除したいウィンドウの
  184.           ハンドルを指定してもらう仕様に変りました。ただし、
  185.           従来との互換のため、wParamに値が入ってない場合でも
  186.           受信ウィンドウが1つの場合は自動的にそれが解除され
  187.           ます。
  188.  
  189.    リターン値  なし
  190.  
  191. 8.WM_HIDETERM_RECEIVED
  192.  
  193.    機能     このメッセージは秀Termから送られるメッセージです。
  194.           WM_HIDETERM_SETRECEIVERで指定されたウィンドウに送られま
  195.           す。受信したデータを生で送ります。W
  196.           M_HIDETERM_SETRECEIVER2で指定されている場合は行単位で通知
  197.           します。
  198.  
  199.           パラメータ    説明
  200.           wParam      受信した文字列を格納したバッファの
  201.                    ハンドルが入っています。GlobalLock
  202.                    してアクセスしてください。
  203.                    文字列はNULL文字で終了しています。ま
  204.                    た、漢字の1バイト目だけや2バイト目
  205.                    だけが含まれる場合もあるので注意が必要
  206.                    です。
  207.                    データはSHIFT-JISに変換されています。
  208.  
  209.                    WM_HIDETERM_SETIDLENOTIFICATIONが指定
  210.                    されている場合は、NULL文字だけが通知さ
  211.                    れることがあります。
  212.  
  213.           lParam      下位ワードに文字列の長さが入っていま
  214.                    す。NULL文字を含まない分の長さです。
  215.  
  216.    リターン値  なし
  217.  
  218. 9.WM_HIDETERM_EXECSCRIPT
  219.  
  220.    機能     このメッセージは、指定されたスクリプトを秀Termに実行させ
  221.           ます。スクリプトには、ファイル名とラベルが指定できます。
  222.           指定の方法は秀Termの「設定・キー割り当て」と同じ形式です。
  223.  
  224.           パラメータ    説明
  225.           wParam      文字列のバイト数を指定します。
  226.                    ('\0'で終端しない言語もあるかも?)
  227.  
  228.           lParam      下位ワードに、実行したいスクリプト名を
  229.                    格納したバッファのハンドルを指定します。
  230.                    ここに指定するバッファは、
  231.                    GMEM_DDESHARE属性で確保されていなければ
  232.                    なりません。
  233.  
  234.           文字列の例:「NIF.SCR」、「NIF.SCR:SendFileName」
  235.  
  236.    リターン値  成功した場合は0以外の値が返ります。
  237.  
  238. 10.WM_HIDETERM_QUERY_ONLINE
  239.  
  240.    機能     このメッセージは、秀Termが現在オンライン状態かどうかを返し
  241.           ます。
  242.  
  243.    リターン値  オンライン状態のとき1、そうでないとき0
  244.  
  245. 11.WM_HIDETERM_SETIDLENOTIFICATION
  246.  
  247.    機能     このメッセージは、WM_HIDETERM_SETRECEIVERまたは
  248.           WM_HIDETERM_SETRECEIVER2を送ったウィンドウだけが送ること
  249.           ができるメッセージです。
  250.           パラメタで指定された時間が経過しても通信ポートから何も受
  251.           信しなかった場合、そのことを通知するよう指定します。
  252.  
  253.           通信ポートから何も受信しなかった場合は、WM_HIDETERM_
  254.           RECEIVEDメッセージでNULL文字だけが送られてきます。
  255.  
  256.           パラメータ    説明
  257.           wParam      メッセージを受信するウィンドウのハンド
  258.                    ルを指定します。
  259.  
  260.           lParam      時間をミリ秒単位で指定します。
  261.  
  262. 12.WM_HIDETERM_GETVAR
  263.  
  264.    機能     このメッセージは、秀Termの変数の内容を通知します。
  265.  
  266.           パラメータ    説明
  267.           wParam      変数名を含むグローバルメモリのハンド
  268.                    ルを指定します。GMEM_SHAREでないとだめ
  269.                    です。
  270.  
  271.           lParam      下位ワードに、変数に代入されている値を
  272.                    格納するためのグローバルメモリのハンドル
  273.                    を指定します。GMEM_SHAREでないとだめで
  274.                    す。256バイト以上のサイズが必要です。
  275.  
  276. 13.WM_HIDETERM_SETVAR
  277.  
  278.    機能     このメッセージは、秀Termの変数の内容を書き換えます。
  279.  
  280.           パラメータ    説明
  281.           wParam      変数名を含むグローバルメモリのハンド
  282.                    ルを指定します。GMEM_SHAREでないとだめ
  283.                    です。
  284.  
  285.           lParam      下位ワードに、代入したい値を格納する
  286.                    ためのグローバルメモリのハンドル
  287.                    を指定します。GMEM_SHAREでないとだめで
  288.                    す。
  289.  
  290.           変数名は30文字以内、値はnull文字を含めて256バイト以内
  291.           である必要があります。
  292.  
  293. 14.WM_HIDETERM_SETBINARYMODE
  294.  
  295.    機能     このメッセージは、秀Termをバイナリ転送モードにして、秀Term
  296.           の受信するメッセージを一切の加工(NULL文字の除去、JISコ
  297.           -ドの変換など)を行わずに呼び出し元のアプリケーションに通
  298.           知するようにします。
  299.           秀Term自身はバイナリ転送中のように、バックスクロールしかで
  300.           きない状態になります。
  301.           バイナリモードを解除するにはWM_HIDETERM_ENDRECEIVERを使って
  302.           ください。
  303.           バイナリモード中はWM_HIDETERM_SETRECEIVER,SETRECEIVER2した
  304.           アプリケーションへのRECEIVEDメッセージの送信は行われません
  305.  
  306.           パラメータ    説明
  307.           wParam      メッセージを受信するウィンドウのハンド
  308.                    ルを指定します。
  309.  
  310.           lParam      下位ワードが0の場合は秀Termは受信した
  311.                    文字列を自分のウィンドウに表示しますが
  312.                    1の場合は秀Term側の画面表示をしなくな
  313.                    ります。
  314.  
  315.    リターン値  成功した場合にTRUEを返します。
  316.  
  317.    注意     SETBINARYMODEをSendMessageした直後、秀Termはちょっとだけ待
  318.           ち時間が必要になります。という訳で、SETBINARYMODEをSendし
  319.           たら直後にに必ずPeekMessage()を1回実行してください。
  320.  
  321.           SETBINARYMODEした場合に送られてくるRECEIVEDメッセージの中
  322.           のデータはNULL文字で終了していません。
  323.  使い方の例:
  324.  
  325.     MSG   msg;
  326.     SendMessage( hwndHideTerm, WM_HIDETERM_SETBINARYMODE, (LPARAM)hwndMe, 0L );
  327.     PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE );
  328.     ...  バイナリ転送の処理開始 ...
  329.  
  330. 15.WM_HIDETERM_REGISTADDIN
  331.  
  332.    機能     このメッセージは、秀Termにアドインソフトのウィンドウを登録
  333.           させます。登録されたウィンドウは秀Termのメニューバーの下に
  334.           表示されます。
  335.           アドインソフトは5つまで登録できます。
  336.           ウィンドウの高さに0を指定するとウィンドウは非表示になりま
  337.           す。
  338.  
  339.           パラメータ    説明
  340.           wParam      アドインソフトのウィンドウのハンドルを指
  341.                    定します。
  342.  
  343.           lParam      下位ワードでアドインソフトのウィンドウの
  344.                    高さをドット単位で指定します。
  345.  
  346.    リターン値  成功した場合にTRUEを返します。
  347.  
  348. 16.WM_HIDETERM_SETADDINHEIGHT
  349.  
  350.    機能     このメッセージは、アドインソフトのウィンドウの高さを変更し
  351.           ます。
  352.  
  353.           パラメータ    説明
  354.           wParam      アドインソフトのウィンドウのハンドルを指
  355.                    定します。
  356.  
  357.           lParam      下位ワードでアドインソフトのウィンドウの
  358.                    高さをドット単位で指定します。
  359.  
  360.    リターン値  成功した場合にTRUEを返します。
  361.  
  362. 17.WM_HIDETERM_ADDCOMMAND1 ~ ADDCOMMAND7
  363.  
  364.    機能     このメッセージは、秀Termのメニューに任意のコマンドを追加し
  365.           ます。
  366.           ADDCOMMAND1は「ファイル」メニュー、ADDCOMMAND2は「編集」メ
  367.           ニュー、同様にADDCOMMAND7まで使えます。
  368.  
  369.           パラメータ    説明
  370.           wParam      コマンドを受け取るウィンドウのハンドルを
  371.                    指定します。REGISTADDINされているウィン
  372.                    ドゥでも、そうでなくてもかまいません。
  373.  
  374.           lParam      下位ワードでメニューに表示する文字列を含
  375.                    むグローバルメモリのハンドルを指定します
  376.                    上位ワードで、そのコマンドが実行された場
  377.                    合に通知するコマンドの値を指定します。
  378.                    下位ワードが0の場合はセパレータを追加し
  379.                    ます。
  380.  
  381.    リターン値  成功した場合にTRUEを返します。
  382.  
  383. 18.WM_HIDETERM_SETSENDFILTER  (まだ使えないと思う)
  384.  
  385.    機能     このメッセージは、秀Termから送信する文字列をアプリケーショ
  386.           ンに通知します。WM_HIDETERM_SENDREPORTメッセージを使って通
  387.           知します。
  388.  
  389.           パラメータ    説明
  390.           wParam      WM_HIDETERM_SENDREPORTメッセージを受け取る
  391.                    ウィンドウハンドルを指定します。
  392.  
  393.    リターン値  成功した場合にTRUEを返します。
  394.  
  395. 19.WM_HIDETERM_ENDSENDFILTER  (まだ使えないと思う)
  396.  
  397.    機能     このメッセージは、WM_HIDETERM_SETSENDFILTERで指定した送信
  398.           文字列の通知を解除します。
  399.  
  400.           パラメータ    説明
  401.           wParam      解除したいウィンドウハンドルを指定しま
  402.                    す。
  403.  
  404. 20.WM_HIDETERM_SENDREPORT  (まだ使えないと思う)
  405.  
  406.    機能     このメッセージは、WM_HIDETERM_SETSENDFILTERメッセージによっ
  407.           て指定されたウィンドウに秀Term側から送られるメッセージで
  408.           す。
  409.           秀Termの通信ポートの設定で「ローカル編集」がONになってる
  410.           場合やチャットモードの場合は1行づつまとめて送られてきます
  411.           が、そうでない場合は1文字づつ送られてきます。
  412.           スクリプトのSEND文が実行された場合はその内容がそのまま送ら
  413.           れてきます。
  414.           無手順アップロードの場合は1行づつ通知されます。
  415.           バイナリ転送中は通知されません。
  416.  
  417.           パラメータ    説明
  418.           wParam      これから送信する文字列の長さです。
  419.  
  420.           lParam      下位ワードに送信する文字列を含むグロー
  421.                    バルメモリのハンドルが入ってます。
  422.  
  423. 21.WM_HIDETERM_EXECSCRIPT2
  424.  
  425.    機能     このメッセージは、グローバルメモリ内に書き込まれたスクリプト
  426.           を実行します。
  427.  
  428.           パラメータ    説明
  429.  
  430.           lParam      下位ワードに、実行したいスクリプトを
  431.                    格納したバッファのハンドルを指定します。
  432.                    ここに指定するバッファは、
  433.                    GMEM_DDESHARE属性で確保されていなければ
  434.                    なりません。
  435.                    スクリプトの最後はNULL文字で終わっている
  436.                    必要があります。
  437.                    改行の文字は'\n'を使ってください。
  438.                    グローバルメモリは64キロバイト未満で
  439.                    なくてはいけません。
  440.  
  441.    リターン値  成功した場合は0以外の値が返ります。
  442.  
  443. 22.WM_HIDETERM_SETEVENTNOTIFICATION  (まだ使えないと思う)
  444.  
  445.    機能     このメッセージは、秀Termで発生する各種のイベントをアプリ
  446.           ケーションに通知するようにします。
  447.  
  448.           パラメータ    説明
  449.  
  450.           wParam      イベントを通知してほしいウィンドウの
  451.                    ハンドルです。
  452.  
  453.    リターン値  成功した場合は0以外の値が返ります。
  454.  
  455. 23.WM_HIDETERM_EVENT  (まだ使えないと思う)
  456.  
  457.    機能     このメッセージは、秀Termで発生した各種のイベントをアプリ
  458.           ケーションに通知する際に、秀Term側からアプリケーションに
  459.           送られるメッセージです。
  460.           このメッセージはプロセス間で送られるメッセージなのでこの
  461.           メッセージの処理中はメッセージボックスやダイアログボック
  462.           スは出してはいけません。
  463.  
  464.           パラメータ    説明
  465.  
  466.           wParam      イベントの種類です。
  467.  
  468.    リターン値  0を返してください。
  469.  
  470.    イベントの種類:
  471.  
  472.         HTEVENT_CONNECTED             電話がつながった
  473.         HTEVENT_HANGUPED              電話が切れた
  474.         HTEVENT_BEGINUPLOAD           アップロードが開始された
  475.         HTEVENT_BEGINDOWNLOAD         ダウンロードが開始された
  476.         HTEVENT_ENDPROTOCOL           アップロード/ダウンロードが終了した
  477.         HTEVENT_BEGINBPLUS            BPLUSが開始された
  478.  
  479. 24.WM_HIDETERM_SETMOUSEHOOK  (まだ使えないと思う)
  480.  
  481.    機能     このメッセージは、秀Termウィンドウで発生するマウスのイ
  482.           ベントを、秀Termが処理する前にアプリケーションに通知す
  483.           るようにします。
  484.           アプリケーション側には、自分自身のウィンドウに対するマ
  485.           ウスメッセージか、それとも秀Termウィンドウから送られて
  486.           くるマウスメッセージかをうまく判定してください。
  487.           例えば、GetCursorPos関数を使ってどちらのウィンドウかを
  488.           判定するか、または見えないウィンドウを作ってそこにマウ
  489.           スメッセージが通知されるようにする等です。
  490.  
  491.           アプリケーション側にマウスメッセージが送られたら、もし
  492.           そのメッセージを自分で処理し、秀Term側では無視してほし
  493.           い場合は0以外の値でリターンしてください。秀Term側に本
  494.           来の処理をさせたい場合は0でリターンしてください。
  495.  
  496.           秀Termのマウスメッセージは、HideTermFrameClassというク
  497.           ラス名のウィンドウではなく、HideTermClassというクラス
  498.           名のウィンドウ内でのメッセージのみが通知されます。
  499.  
  500.           パラメータ    説明
  501.  
  502.           wParam      通知してほしいウィンドウのハンドル
  503.                    です。
  504.  
  505.    リターン値  成功した場合は0以外の値を返します。
  506.  
  507. 25.秀Termウィンドウの見つけ方
  508.  
  509.   秀Termのウィンドウを探すには、"HideTermFrameClass"というクラス名のウィン
  510.  ドウを探してください。
  511.  
  512. プログラム例:
  513.  
  514. extern HWND    hwndHideterm;
  515.  
  516. BOOL GetHidemaruBuffer( int iLine, char* pszLine ) {
  517.     HANDLE    hmem;
  518.     LPSTR    pb;
  519.     hmem = GlobalAlloc( GMEM_DDESHARE | GMEM_MOVEABLE, 81 );
  520.     if( hmem == NULL ) return FALSE;
  521.     SendMessage( hwndHideterm, WM_HIDETERM_GETBUFFER, iLine, MAKELONG( hmem, 0 ) );
  522.     pb = GlobalLock( hmem );
  523.     if( pb == NULL ) {
  524.         GlobalFree( hmem );
  525.         return FALSE;
  526.     }
  527.     lstrcpy( pszLine, pb );
  528.     GlobalUnlock( hmem );
  529.     GlobalFree( hmem );
  530.     return TRUE;
  531. }
  532.  
  533. void SendDataToHidemaru( char* psz ) {
  534.     HANDLE    hmem;
  535.     LPSTR    pb;
  536.     int        cch;
  537.     cch = strlen(psz);
  538.     hmem = GlobalAlloc( GMEM_DDESHARE | GMEM_MOVEABLE, cch + 1 );
  539.     if( hmem == NULL ) return FALSE;
  540.     pb = GlobalLock( hmem );
  541.     if( pb == NULL ) {
  542.         GlobalFree( hmem );
  543.         return FALSE;
  544.     }
  545.     lstrcpy( pb, psz );
  546.     SendMessage( hwndHideterm, WM_HIDETERM_SENDDATA, cch, MAKELONG( hmem, 0 ) );
  547.     GlobalUnlock( hmem );
  548.     GlobalFree( hmem );
  549.     return TRUE;
  550. }
  551.  
  552. void Test( void ) {
  553.     HWND    hwndHideterm = FindWindow( "HideTermFrameClass", NULL );
  554.     if( hwndHideterm == NULL ) {
  555.         MessageBox( hwndClient, "秀Termがまだ起動されていません。", NULL, MB_OK | MB_ICONHAND );
  556.         return;
  557.     }
  558.     HANDLE    hMem = GlobalAlloc( GMEM_DDESHARE | GMEM_MOVEABLE, 81 );
  559.     LPSTR    pb = GlobalLock( hMem );
  560.     WORD    version = SendMessage( hwndHideterm, WM_HIDETERM_GETVERSION, 0, 0L );
  561.     char    sz[30];
  562.     itoa( version, sz, 16 );
  563.     MessageBox( hwndClient, sz, NULL, MB_OK );
  564.     SendMessage( hwndHideterm, WM_HIDETERM_GETBUFFER, 0, MAKELONG( hMem, 0 ) );
  565.     MessageBox( hwndClient, pb, NULL, MB_OK );
  566.     SendMessage( hwndHideterm, WM_HIDETERM_GETBUFFER, 1, MAKELONG( hMem, 0 ) );
  567.     MessageBox( hwndClient, pb, NULL, MB_OK );
  568.     lstrcpy( pb, "AT\\N3\x0D" );
  569.     SendMessage( hwndHideterm, WM_HIDETERM_SENDDATA, lstrlen(pb), MAKELONG( hMem, 0 ) );
  570.     GlobalUnlock( hMem );
  571.     GlobalFree( hMem );
  572. }
  573.  
  574.  
  575. #endif
  576.