過去雑記

旧鯖時代の雑記です。新しいの。リンク切れに注意。


2007: 12345678910
2006: 123456789101112
2005: 123456789101112
2004: 456789101112

過去雑記

2004/6/1(火)

HSP Ver2.61 公開00:47:52

HSP Ver2.61が公開されてます。書籍の都合だとかでなんとなく中途半端な感が。

コメントはありません。

C++ っぽくいこう01:27:54

HSP Ver2.61 から命令が全て hsp 名前空間に移動されて命令のオーバーライド(っぽいこと)が可能になったわけですが、これならはじめから global な命令を排除して #using とか用意したほうがスマートではないかと思うのですが、、、

#using hsp     // hsp 名前空間を全て global に定義
#using mes@hsp // mes@hsp を global に定義

モジュールを使わない人たちもいるしだめですかね。

コメントはありません。

無償の ASP.NET サーバー19:59:13

ASP.NET が使える無料サーバーでテスト用途向け無償のASP.NET ホスティングなんてのができてるみたいです。ただ、「テスト用途向け」だけあっていろいろと制限がありサイトを運営するには厳しいかも。ASP.NET はデバッガがちゃんとしていたり言語に C# が使える(PHP のような暗黙的な型変換に悩まされない)点は魅力なんですけどね〜。

コメントはありません。

2004/6/2(水)

はてなダイアリー占い22:16:26

方位記号さんは 日記 に向いています。 ● あなたは、感受性が鋭く、子供のように素直で純真な人です。人を疑うことをしないため、時には騙されて傷つくこともあるのですが、そんな経験があなたをより強く優しい人間にしていきます。また、子供のような心を持っているということは、既成概念にとらわれない、自由で自然体な生きかたができるということでもあります。どんな場所でも素直に周囲の意見を受け入れるので、無理なくその場に溶け込んでいけるでしょう。ただし、自然体という気質が悪い方向に出てしまうと、ワガママで気まぐれだというレッテルを貼られてしまうかも。自分勝手な部分を慎むことが、開運の大きな鍵になりそうです。恋愛面では、あなたの素直さを大事にしてみて。 というわけで「日記」を書くのに向いています。 ● 方位記号さんの心のふるさとは、ハワイです。

いや、何が「というわけ」なのかさっぱりです。

コメントはありません。

2004/6/3(木)

Yahoo! JAPAN も Google さんと縁を切ったわけですが21:03:53

いまだ認知していただけません。というか Google さんにも中途半端にしか認知してもらっていません。(ドキュメントにまったく bot がこない)まぁそれはそれで別にかまわないのですが、関係ないキーワードで検索して来られたりすると申し訳なく、、、

コメントはありません。

今日のお買い物21:24:15

総理大臣のえる!神様だよ、全員集合!

シリアス路線的には従来より後退した感があるものの相変わらずの秀作だと思う。しかし、CCCDは詐欺ってやばくないですか?

どうでもいいですがこの人の著者略歴が毎回違うのは何故なのでしょう。

コメントはありません。

2004/6/4(金)

7,140 か〜、どうしよ。23:09:02

いや、おさばきアドベンチャーのことなんですけどね。すでに携帯、外付けHDD、ルーターを買っていてVS2005を考えるとこれ以上の無駄な出費は厳しいかな〜。

コメントはありません。

2004/6/5(土)

結局更新できず>関連付け情報21:59:41

キーの説明は書き終わってるのですが、ファイルタイプだとかProgIDだとかのうまい説明が思い浮かばないので公開保留中。というか今微妙に忙しい(ドラクエじゃないですよ?最近更新がおざなりなのはこのあたりが原因)のであまりリソースが避けず、後で見直したら誤字、脱字が多そうな予感。

コメントはありません。

ソレだけではあまりにアレなので23:41:56

プログラミングTips的なことでもやっておきましょうか。題材はコメント 。コメントは確かに重要ですが使い方が怪しいものなどもあるので間違った使い方の例を示します。

これはとある講座で書かれていたコメントの使い方の要約です。

// OK ボタン
private Button button1;
// OK ボタン クリックイベントハンドラ
private void button1_Click(object sender, System.EventArgs e)

このような使い方は論外です。確かに宣言部分を見ればコメントがあるので意味は理解できますが、それ以外の場所――button1 を参照する場合など――では(初見で)意味が理解できません。

private Button button_ok;
private void button_ok_Click(object sender, System.EventArgs e)

このように適切な名前を与えれば初めようなコメントはなくとも意味は想像できます。重要なのはコメントよりむしろ名前付けにあるといえるでしょう。

コメントはありません。

2004/6/6(日)

今日は spice のサイトを構築23:00:52

突発的コード書きたい症候群(何それ)なわけでへこへこと spice 側の PHP スクリプトを書いてましたので今日の更新はしない方向で。これを元に何かネタが出ればよかったのですが、そんなこともなく。というか azulog のコードが汚すぎで書き直したいけど、そんな時間ないといった状況。RSS が理解できた気がするのでそのうち RSS 配信を始めるかもしれません。

コメントはありません。

2004/6/7(月)

最近物覚えが悪くて大変です。20:26:15

ふとワンピースのひとつながりの財宝云々の元ネタって何かあったような〜と思い、色々と調べた結果、

1635年 家康、鎖国を命じる。そのくせ自分は「ひとつながりの財宝」を求めて、海賊船に乗り、グランドラインを目指して旅立つ 1639年 家康、グランドラインから帰還し、一言。「ひとつながりの財宝とは、冒険という名の思い出だった」と

であったということが発覚。鬱。

一応補足しておきますとこれは元ネタではなく、これの元ネタがワンピースです。

コメントはありません。

2004/6/8(火)

例によってspiceのサイト構築中23:10:03

ということで今日はお休みということで。

しかし改めて見直してみると azulog のコードが非常に汚いので直したいです。PHP は言語仕様だけを見るときれいに書けそうな気がするのですが、実際に書いてみると。。。やはり変数の自動型変換が癌になるのですかねぇ。後変数のスコープがないのも痛いです。細々と関数化すればよいのですが、これも自動型変換がネックで下手すると見通しが悪くなりますし。

コメントはありません。

2004/6/9(水)

12歳なHSP本19:54:36

立ち読みで流し読みな感想ですが、所々語弊を招きそうな文がある以外は既存のHSP本の中では一番まともな気がします。特に料理本がコードを載せておくから後は自分で、といったスタンスなのに対しこちらは何故このように実装するのかが示されています。だから買いであるかといわれると、そもそものターゲット年齢層が低いため微妙な言い回しでぼかしてる文もあるため微妙ですが。。。

コメントはありません。

2004/6/10(木)

寝てました。23:31:45

えっとつい先ほどまで寝てしまってましたので、今日の雑記はお休みということで。

コメントはありません。

2004/6/11(金)

RPGツクールXPとかいうのがでるらしい00:25:44

見た感じRPGツクール2000の素材サイズの制約を撤廃して解像度を640x480にした感じ。従来のコマンド方式以外にもプログラミング言語として Ruby が使えるようになっている点は魅力。

ただ前々から言っている「データを数値として管理している」点は変更されていないっぽいのが残念。何が問題化は以前の雑記に書いたのですが。過去ログを潰しているので簡単に言っておくと仕様変更に非常に弱いということです。

複数人での開発に関しては不明。テックウィンに体験版が入っているらしいですが、そもそも購入する気がないので確認するきなしです。そんな金があるのなら おさばきアドベンチャー を買います。

コメントはありません。

2004/6/12(土)

html要素に名前空間宣言が入る02:10:01

色々と調べていたら日付変わってるし。

名前空間を持つ XML を xslt_process()で XHTML に変換すると html要素 に名前空間宣言をおかれてしまいます。XSL 側からだとどうにもならないっぽいので、置き換えて解決を図ってみました。ついでに br などの空白がつぶれる問題も置き換えで解決。これは XSL 側で解決できますが、直感的でなくて嫌いなので。

// $html に XHTML が入っています

// html要素を置き換え
ereg_replace ("<html[^>]*>",
    "<html lang=¥"ja¥" xml:lang=¥"ja¥" dir=¥"ltr¥""
        ." xmlns=¥"http://www.w3.org/1999/xhtml¥">",
    $html );

// こっちは <br/> などの後ろの空白がつぶれる問題を解決
$ret= ereg_replace ("<([^>]*)/>", "<¥¥1 />", $html );

これで spice が Another で100点を実現。

コメントはありません。

2004/6/13(日)

Sleipnir@Gecko03:44:44

Sleipnir - Geckoによると1.70 で正式に対応できればだそうで今後に期待。

コメントはありません。

ASP.NET で 書き込みを行う際の覚書(XP Pro)23:19:29

フォルダオプション→表示→詳細設定 で 簡易ファイルの共有を使用する(推奨)のチェックをはずします。というかこれのどこが推奨なのやら。

書き込み対象にしたいファイル/フォルダのプロパティ→セキュリティでユーザ ASPNET を追加します。

あとはこのユーザに書き込み権限を与えるだけ。

コメントはありません。

2004/6/14(月)

モジュールとラベルの微妙な関係03:03:43

#module "mod"
#global
*_mod_exit

一見なんの問題もなさそうに見えるこのコードですがコンパイルは通りません。HSP のモジュール部分はスキップされスクリプトの処理が通らないとされますが、これはコンパイル時に goto に置き換え、処理を飛ばすという実装なためで別の領域にコードを生成しているわけではありません。で、このラベルの命名規約が *_{module-name}_exit なのです。よってこの場合 *mod_exit が多重定義となり結果コンパイルが通らなくなるわけですね。

問題はこの仕様が Undocument なため問題が発生しても .i を見なくては分からないということでしょうか。確かに発生する確率は激しく少なくはあるのですが。。。

コメントはありません。

HSP講座―マクロを知る(3)03:23:56

かな〜り間があいてしまいましました。以前のは5月の雑記にあります。現時点で何故だかカテゴリ一覧に表示されていないというバグが発生しているので直に飛んでください。さて、予定を今回は変更して #module を。#deffunc はメインではないです、ほら本題はマクロですから。

#moudle {module-name}
#global

module-name がモジュールの名前を示します。指定しない場合コンパイラがユニークな名前を補います。

#module-#global 間はスクリプト的には独立した名前空間を構成するように見えますがコンパイルされる中間言語的にはなんら独立していません。これは #module は名前空間であるので当然といえます。

#module "mod"
#deffunc method
    t = "Hello";
    mes t;
return;
#global

このスクリプトは下記のように展開されます。

goto@hsp *_mod_exit
#deffunc method
t@mod = "Hello"
mes t@mod
return@hsp
*_mod_exit

#module-#global が消滅して goto に置き換えられている(@hsp がついていますが、これは後ほど)のが分かると思います。そして内部の変数名に @{module-name} が付加されています。これが HSP のモジュールによる分離のカラクリです。なんことはなく単に接尾詞によりほかと分離しているに過ぎません。

これは次回に続きます。

コメントはありません。

HSP 2.61本21:24:48

駄目、、だと思います。ぱっと見て読む気をなくしたのでもしかするとよいことが書いてあるのかもしれません。少なくともまったくの初心者には12歳本をお勧めすします。

コメントはありません。

2004/6/15(火)

valid なHTMLを出力23:28:40

よく考えると人が来ない spice のサイトに導入しても負荷の試験にはならないので index.php に導入してみました。負荷が高そうならばはずします。現在のところトップページはAnother HTML-lint で100点を実現。

コメントはありません。

2004/6/16(水)

祝10000hit18:34:43

4桁突入〜。まぁだから何かするというわけでもないのですが。

コメントはありません。

掲示板はサポートセンターではありません18:36:47

最近本家をみているとマニュアル読んでない人が多すぎな気がするのですよね。最低でも質問する前に検索ぐらいするように。

ってここに書いて果たして意味があるのでしょうか。。。

コメントはありません。

2004/6/17(木)

半月くらい早いですが七夕ネタ00:31:21

2人が1年に1度、七夕しか会えないのって2人が仕事をしなかったからで「1年に1度しか会えないなんて可哀想」というより「単なる自業自得」なのでは?

、、、と考えてしまう私には夢がありませんかそうですか。

コメントはありません。

MSの学生囲い込み戦略21:50:26

Visual Studio .NET theSpoke Premium Version 2003によるとVS.NET 2003 Academic相当が4830円で販売(約8割引!)されるそうで。学生さんに限定されますが無駄にお得です。

コメントはありません。

2004/6/18(金)

Sleipnir 1.6000:42:56

Sleipnir 1.60が公開されてます。Gecko が使えるわけですが、スクロールバーが出ません。Wikiを見ても報告されていないし私の環境だけ?

コメントはありません。

未来犯罪鑑定チャート00:56:58

未来犯罪鑑定チャートをやってみました。

「薬品に異常な興味」と「化学の知識」を持ち合わせたあなたは、薬好きがこうじて通常では手に入らない薬品を手に入れたいと考えるようになり、結果禁じられている薬品を所持又は使用してしまうという「覚せい剤取締法違反」や「麻薬及び向精神薬取締法違反」を犯す傾向が強いようです。 「クロロホルム」や「青酸カリ」と聞くと心がワクワクしてきたりしませんか?  ちょっと待ってください。それらが入手困難だからといって、「手に入りやすい薬から集めていこう」などと思い始めたら危険信号です。その辺の外人から軽い気持ちで買ってみた時点で、既にあなたは「犯罪者」です。覚せい剤や麻薬は「持っているだけで罪」になるのです。またあへんについては所持しているだけでも「あへん煙所持罪(刑法第140条)」として「刑法典上の犯罪」になるのです。 いくら「薬が好きだから」といって「違法ルートで手に入れる」ことはいけません。正規に処方されて手に入れたのでなければ「何らかの法律に引っかかる」のです。 「趣味は趣味としてとどめておく」方がよいでしょう。くれぐれも犯罪に手を染めることのないよう、ご注意ください。

コメントはありません。

2004/6/19(土)

気づけば6月も半分過ぎてますよ00:40:07

トップ絵を変える〜などと言っておきながらいまだにシャープペンの芯(普段は0.5mmですが絵を描くときは0.3mmを使用)と紙(まぁこれはその辺にあるのを使ってもよいのですが)を買ってきてなかったりします。まぁホラ、一寸先は闇という言葉もありますので、、、(いいわけはやめなさい)

コメントはありません。

azulog をどうするか。22:25:39

実装が腐っているので書き直す予定なのですが、PHP5が夏ごろまでにでるという話なのでどうせならOOPなそちらを待ったほうがよいのかなーと考え中。

最もXREAさんがサーバに入れてくれるのかといった問題や初物は日本語の資料が少ないといった問題もあるのですぐに移行できるかどうか。

現状の「なんでもindex.php」からspiceで動かしているD.M.S(仮称)の実装(spice の掲示板で公開してるので興味ある方はそちらへ==バグだしお願い(ぉ))でいけば、それなりにシンプルになるかもしれませんが。。。むぅ。

コメントはありません。

2004/6/20(日)

スタイルシートかえてみた00:00:02

サイト初期から見ていくとだんだん白黒無色へとシフトしてますな。トップ絵?何それ、おししいの?

コメントはありません。

久々に更新02:34:10

ドキュメントに「C#でホットキーコントロールを作る」を追加しました。ホットキーコントロールのコードを載せてます。

最近Tipsに使えるようなコードを書いていないのでネタ切れ気味です。。。自作のメニューコンポーネントのコードとか公開してしのぎますかねぇ。(欲しい人とかいる?)

コメントはありません。

HSP プログラムコンテスト200422:35:34

ページだけはできていますね。昨年はマシン語に頼りきったどのあたりがHSPなのか、というスクリプトで応募したわけですがさて今年はどうしましょうか。

コメントはありません。

2004/6/21(月)

Wikiでドキュメントを管理することの意義03:39:50

spiceのドキュメント管理にWikiを使うという話が出たのでそのとき考えたことのまとめ。HSPWiKiのケースを参考に。

現在HSPWiKiでドキュメントの修正作業などが行われているようですが、現状これは無意味です。いくらWebで完璧な情報が形成されても、実際Webに見に行こうと思うでしょうか。つまるところ最終的にローカルに落とす方法が確立されなければならないのです。そしてこれは自動で行われるべきです。ここに人の手が加わるようであればドキュメントの量が増えたときに破綻しますし、ミスが発生する可能性も否定できません。理想的なのはWikiのデータはリアルタイムに更新されるためローカルで何らかのタイミングでチェックしにいき、差分をダウンロードするといった仕組みが確立されることでしょうか。

一方「誰でも編集可能」ということは「誰にでもコンテンツを破壊できる」ということにつながりかねません。これは故意があるかないかにかかわらずです。善意で書き込んだが、その内容が間違っていたりするということはないとは言い切れませんし実際にあると思います。とあるWiki(現在既に閉鎖)に書き込まれたプログラミングTipsにはこのようなもの(実際の内容とは言語からして異なりますが)がありました。『printf()の意外な一面。コマンドプロンプトでhoge.exe > hoge.txtとするとprintf()の内容をhoge.txtに書き出します。』分かる人には分かると思いますがこれはcmd.exeの機能でありprintf()の機能ではありません。このように勘違いの投稿によりコンテンツ全体の質が低下するということは避けきれないのです。(最もこれは管理人が書き込んでいたのですが)

つまるところWikiでドキュメントを管理する場合「ある特定の人以外の書き込みを禁止、または書き込みを一度人がチェックする体制」、「Wiki からローカルへのスマートな変換」この2つが最低必要になると思います。

コメントはありません。

まぶらほ〜ふっかつの巻・なんせい〜23:48:29

予想通り台風はそれたので買ってきました。で、内容はなんとな〜くイマイチ。

コメントはありません。

2004/6/22(火)

名前付けの注意点23:25:13

ラベル名やマクロ名として、「_」が頭についている名前はシステム側が使用する 可能性が高いため、通常の使用は避けることも併せてドキュメントなどに記述する 方向で考えています。

ということでシンボルの頭に「_」を使用することはなるべく避けたほうがよいそうです。

コメントはありません。

2004/6/23(水)

ひどい言われよう16:43:29

あたらないと評判のURL占いをやってみました。

方位記号さんのサイトは マニアック サイトです! あなたのサイトのURLは、マニア受けがすこぶるよい、マニアックサイトの可能性が高いです。 逆に言うと、一般受けはすこぶる悪いです。 正直、マニアではない人から見ると、「キモい」という感想を抱かれるかもしれません。 そんなあなたに必要なのは、一般人とマニアを見分ける分別。 一般人に、あなたのサイトのURLをはずかしげもなく教えてはいけません! キモがられますから。 引かれますから。 たぶん。

コメントはありません。

2004/6/24(木)

青ペプシ21:36:42

まずい。。。気分悪くなりました。C2は駄目だとは思わなかったのですが。。。

コメントはありません。

2004/6/25(金)

さまざまって全部IEなのは気のせいですか?23:16:30

窓の杜のさまざまなアプリケーションを異常終了させるGIF画像がネット上に流出より。まぁタイトルのとおりです。

コメントはありません。

2004/6/26(土)

HSP 2.61a20:30:19

早くもHSP 2.61aが公開されています。ただ変更点を見る限りは本体に手は加えられていないようですね。

コメントはありません。

theSpoke だめっぽい23:53:04

theSpokeを覗いていたのですが、なんというか。。。

まずシステム。サーバー重すぎでストレスたまる。さらにクライアントスクリプトだらけ(私は潰しているので一々切かえる必要がある)でアクセシビリティ低すぎ。というか全部 title が theSpoke ってのは如何なものか。

そしてコミュニティ。まだ書き込み少ないので判断しかねますが、よく悪くも「子供」といった感じが。HSP本家と同じく「教えて君」が大量発生しそうな予感。この先まともに動きますかねぇ。

コメントはありません。

2004/6/27(日)

ネタない23:25:42

6月は絵を描くといってましたがspiceのアイコンを書いたので勘弁してください。

、、、駄目ですか。ぶっちゃけ描くものがないのですよね。リクエストは(手元に資料があれば)受け付けます。←自分の首を絞める行為

まぁ何をやっているかというとドラクエなわけですが(おい)エスタークが15ターンで倒せないのでレベル上げ中。

コメントはありません。

2004/6/28(月)

みら〜じゅ#1400:29:39

それだけではあれなので。。。って日付変わっちゃってますね。久々の更新です。相変わらず細かいところは忘却しています。ダウンロード(#14)

画像系リソースを.resourcesに移動しました。

通知領域をポイントした際のツールチップで現在のページとウィンドウの数を表示するようにしました。(標準でOFF)結構無駄な処理をしておりCPUパワーを食うので非力な環境では使用しないでください。

コメント(1)

あまりに久々だったので書くの忘れてました。まぁいらないかな?みら〜じゅはシンプルな仮想ディスクトップユーティリティです。.NET Framework 1.1 がインストールされた環境で動作します。動作確認は Windows XP のみでととっておりそのほかの環境では知りません。

投稿者: 方位記号 (2004/06/28[Mon] 00:35)

テキストをドロップ03:55:02

テキストのドロップ通知をうけます、それだけ。みら〜じゅのエディットボックスがドロップできるとカッコイイ気がするという理由で作ってみました。TextBoxなどの適当なコントロールに追加してください。

// DragEnter イベントハンドラ private void OnDragEnter(object sender, System.Windows.Forms.DragEventArgs e) { if ( e.Data.GetDataPresent(DataFormats.Text) ) { e.Effect = DragDropEffects.Copy; } else { e.Effect = DragDropEffects.None; } } // DragDrop イベントハンドラ private void OnDragDrop(object sender, System.Windows.Forms.DragEventArgs e ) { if( e.Data.GetDataPresent(DataFormats.Text) ) { ((Control)sender).Text = (string)e.Data.GetData(DataFormats.Text); } }

ドラッグについては目下研究中。

コメントはありません。

2004/6/29(火)

テキストをドラッグ01:36:58

案の定既存コントロールを使うのは無理ですね。で、既存の TextBox でがんばってみた結果がコレ。

// ドラッグフラグ
private bool nowDrag;
protected override void WndProc(ref Message m) {
    switch( m.Msg ) {
    case 0x201:  // WM_LBUTTONDOWN
        if( (DragDropType==DragDrop.DragDrop)
            && (this.SelectionLength != 0) ) {
            string text = this.SelectedText;
            int select = this.SelectionStart;
            this.nowDrag = true;
            this.DoDragDrop( text, DragDropEffects.All );
            this.nowDrag = false;
            this.Select( select , 0 );
            return;
        }
        break;
    }
    base.WndProc (ref m);
}

選択した後のクリックでドラッグを開始します。任意の位置にドロップを受け付けるのは不可能なのでテキストの移動はあきらめ nowDrag フィールドを用意。この値が true ならばドロップを受け付けないようにします。

コメントはありません。

サーバー重くて読めませぬ20:39:32

林原めぐみ出産だそうです。

コメントはありません。

2004/6/30(水)

theSpoke00:43:38

どのようなものかと試しにtheSpoke に登録してみました。サーバもだいぶ軽くなりましたしね。ただ、とくにネタになるようなことがなくて残念。(違う)

コメントはありません。

HTMLデータをクリップボードに貼り付け22:16:07

C#でHTMLデータをクリップボードに貼り付けるメソッド。これ以上メンテする気が今のところないのでここに投げておきます。

[DllImport("user32.dll")]
private static extern bool OpenClipboard( IntPtr hWndOwner );
[DllImport("user32.dll")]
private static extern IntPtr SetClipboardData( uint format, IntPtr mem );
[DllImport("user32.dll")]
private static extern bool EmptyClipboard();
[DllImport("user32.dll")]
private static extern bool CloseClipboard();
[DllImport("user32.dll")]
private static extern uint RegisterClipboardFormat( string formatName );
[DllImport("kernel32.dll")]
private static extern IntPtr GlobalAlloc( int flag, int size );
[DllImport("kernel32.dll")]
private static extern IntPtr GlobalFree( IntPtr mem);
[DllImport("kernel32.dll")]
private static extern IntPtr GlobalLock( IntPtr mem );
[DllImport("kernel32.dll")]
private static extern bool GlobalUnlock( IntPtr mem );

void SetClipBordToHtml( string html ) {
    uint CF_HTML = RegisterClipboardFormat( "HTML Format" );
    string data;

    const int GMEM_MOVEABLE = 0x0002;
    const int GMEM_DDESHARE = 0x2000;
    const int GMEM_ZEROINIT = 0x0040;

    int size = System.Text.Encoding.UTF8.GetByteCount( html )+134;
    // HTML データの準備
    data = "Version:0.9¥r¥n"
        + "StartHTML:00000097¥r¥n"
        + string.Format( "EndHTML:{0:00000000}¥r¥n", size+36 )
        + "StartFragment:00000134¥r¥n"
        + string.Format( "EndFragment:{0:00000000}¥r¥n", size )
        + "<html><body>¥r¥n"
        + "<!--StartFragment -->¥r¥n"
        + html + "¥r¥n"
        + "<!--EndFragment-->¥r¥n"
        + "</body></html>"
        ;
    if( OpenClipboard(IntPtr.Zero) ) {
        IntPtr hMem = IntPtr.Zero;
        try {
            IntPtr ptrGlobalMem;

            hMem = GlobalAlloc( GMEM_MOVEABLE |GMEM_DDESHARE | GMEM_ZEROINIT,
            System.Text.Encoding.UTF8.GetByteCount(data)+4 );
            if( hMem != IntPtr.Zero ) {
                ptrGlobalMem = GlobalLock( hMem );
                byte[] utf8mem = System.Text.Encoding.UTF8.GetBytes( data );
                Marshal.Copy( utf8mem, 0, ptrGlobalMem, utf8mem.Length );
                GlobalUnlock( hMem );

                EmptyClipboard();
                SetClipboardData( CF_HTML, hMem );
            } else {
                // TODO: メモリを確保できなかったので例外を投げる
            }
        }
        finally {
            CloseClipboard();
            if( hMem != IntPtr.Zero )
                GlobalFree( hMem );
        }
    }
}

コメントはありません。

HTML形式をクリップボードで送る23:34:50

情報元もメモしておく。(HTML Clipboard Format (Internet Explorer - DHTML))

コメントはありません。

goto Top

Copyright(C)方位記号