- 1 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:39:56 ]
- スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-5くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- 792 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 02:10:38 ]
- WM_KAIZOUDOHENKA
- 793 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 02:17:17 ]
- >>791
DIBセクションはDIBセクションだろw CreateDIBSection によって作成された HBITMAP 互換のGDIオブジェクト。 GetObject すると DIBSection が帰る。
- 794 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 02:30:32 ]
- >791
答え待ってないでProgramming Windows下巻読めよ
- 795 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 03:25:30 ]
- MSのドキュメント読めばわかる程度のことは答えんな。
調べる事が下手糞だといつまでたってもスキルは上がらんぞ。
- 796 名前:デフォルトの名無しさん [2007/11/30(金) 03:37:08 ]
- DIBSection = DIB の部分
つまりDIBの一部分ってことでFA
- 797 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 03:45:56 ]
- >>796
>>791のようなDIBとDDBの区別すらついてない人間にはその説明では不十分だ 結局はMSDN読め、に尽きるが
- 798 名前:デフォルトの名無しさん [2007/11/30(金) 04:17:46 ]
- 香具師なんて使ってる奴久しぶりにみたwww
- 799 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 05:54:26 ]
- その内「w
- 800 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 05:55:07 ]
- 失敗。
まぁいいや。 800ゲッツ!
- 801 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 07:15:09 ]
- >>786
そりゃWin16との互換専用だったりして Unicode版用意してまで延命させる必要がそもそもない
- 802 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 07:32:23 ]
- GetProcAddressはー?
- 803 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 08:35:46 ]
- DLLの仕様でシンボルにANSI文字列しか使えないから
- 804 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 08:41:01 ]
- 切れちゃった
DLLの仕様でシンボルにANSI文字列しか使えないからANSIでないと意味がない 無理してUNICODEにしてもANSIに変換してオーバーヘッドが出るだけ
- 805 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 10:16:43 ]
- ATLのW2Aとかの文字列変換マクロを使えるなら、オーバーヘッドは最小になるよ。
自分の場合、内部はUNICODEで処理するなぁ。
- 806 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 11:06:06 ]
- CreateWindowで作ったウィンドウの子コントロールのフォントを変更したい場合
親ウィンドウに合わせて自動で全ての子のフォントを変更することはできないのでしょうか それともこういった処理は自分で書く必要があるんでしょうか
- 807 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 11:42:00 ]
- もちろん、自分でやらないと駄目。
自動で勝手にフォント変更されたら、コントロール毎にフォントを変えることが できないではないか。
- 808 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 12:48:46 ]
- >>801
違うよImageHlpだよ ま、こんなモン使う機会あまりないけどな
- 809 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 12:55:46 ]
- >>807
やはりそうなんですか ありがとうございました
- 810 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 13:44:40 ]
- >>808
Platform SDKを良く読んだほうが良い
- 811 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 14:10:35 ]
- >>810
よく読むべきなのはお前な BindImage ReBaseImage ImageLoad > All ImageHlp functions, such as this one, are single threaded. 今時こんな設計の糞API揃いだが
- 812 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 14:15:58 ]
- >>811
なんだそれNT時代のAPIじゃないのか?w
- 813 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 14:47:24 ]
- そうはいうがな
Windows1.0時代からあるAPIだってUnicode対応・マルチスレッド対応だぞ
- 814 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 14:48:03 ]
- 1.0は言い過ぎか?
今でも使われる古参のAPIってどのあたりからあるんだろ
- 815 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 16:24:22 ]
- >>813
それだって、最初からそうだったのではなく、 Win32化されたときからじゃないか。 >>814 Win16はわからないけど、CreateWindowとか有名な関数をMSDNライブラリで引くと、 大体Minimum operating systemsがWindows 95, Windows NT 3.1になっている。
- 816 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 18:33:37 ]
- >>815
CreateWindowはWin16時代からある
- 817 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 18:36:26 ]
- そりゃまあ、WinMainからRegisterClassしてCretateWindowしての
一連の基本のやつは昔からあるけどよー
- 818 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:02:10 ]
- マウスキャプチャ状態にある
コモンコントロールのマウスの移動を関知するには どうすればいいのでしょうか? タブをドラッグアンドドロップで移動させたいのですが 親にWM_MOUSEMOVEが飛んできません…
- 819 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:11:50 ]
- キャプチャしたウィンドウに飛んでこないか?
- 820 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:17:04 ]
- >>819
もしやサブクラス化意外に道はないのでしょうか? 通知メッセージを用意しといてくれてもいいのに… ゲイツめぇ
- 821 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:24:10 ]
- だからぁ
SetCapture( hwnd );で hwndに飛んでこないかと?
- 822 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:34:01 ]
- >>821
キャプチャ事態は自分で行っている訳ではなくて コモンコントロールがNM_CLICKに併せて行ってくれているようで 離したときにくるNM_RELEASEDCAPTUREまでの間に MOVEを拾えないかと思ったのです。
- 823 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:36:36 ]
- >>822
そりゃサブクラス化するべきなんじゃね?
- 824 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:38:55 ]
- タブコントロールがSetCaptureして、マウスキャプチャ状態にしてるんだけど、
その状態でWM_MOUSEMOVE相当のメッセージを親Windowで取得したい。 ってこと?
- 825 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:41:36 ]
- NM_CLICKでコモンコントロールはキャプチャしないだろ
それにSetCaptureすればいいだろが
- 826 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:46:00 ]
- spyで確認したけどキャプチャしてない
そもそもその手のドラッグアンドドロップは自分でマウスキャプチャして実装するもの
- 827 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:54:01 ]
- WM_LBUTTONDOWN
If the user is clicking a button, the control redraws the button to give a sunken appearance and captures the mouse. ってMSDNに書いてあるから、ボタンの場合(TCS_BUTTONS style)はキャプチャしているんでしょ?
- 828 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 20:00:29 ]
- >>827
なるほど、だからキャプチャしてたんですね。 親で改めてキャプチャするかサブクラス化してみようと思います。 どうもありがとうございました。
- 829 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 20:01:37 ]
- TCS_BUTTONSスタイルまで確認してなかったわ
- 830 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 20:35:39 ]
- >>814
俺はWTERMの人が書いた本でWindowsプログラミングの勉強をしたが それがたしかWindows1.0用の本で、ほとんどそのまま3.1で通用したよ。 3.1から95もAPIはほとんど一緒だから、GetMessageとかのAPIは ずっと変わってないと思う。
- 831 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 22:22:09 ]
- だってある意味winプログラムの原点だからGetMessageの概念は
- 832 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 22:58:06 ]
- イベントドリブンはナムコが考えました
- 833 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 22:58:18 ]
- 友達がいなくて
携帯メールがGetMessageできない漏れをどうにかしてください WinSockムズカシス
- 834 名前:デフォルトの名無しさん [2007/11/30(金) 23:07:00 ]
- GlobalAllocで確保されるメモリって、自プロセス内のスタック領域?とかいうところから拾ってきてるの?
ファイル読み込みで、何度かGlobalReAllocを繰り返し呼び出して、再確保を繰り返しやると 18000Byte超えたあたりで、メモリの再確保に失敗する なんでだろう
- 835 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:09:28 ]
- >>833
自分で自分のアドレスにPostMessageする
- 836 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:10:48 ]
- >>834
MSDN嫁よ禿
- 837 名前:デフォルトの名無しさん [2007/11/30(金) 23:14:37 ]
- >>836
英語だからミリだよ
- 838 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:19:22 ]
- たしかにな
- 839 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:28:12 ]
- >>837
英語勉強しろよ禿
- 840 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:31:14 ]
- 「Windowsプログラミングの極意」あるいはThe Old New Thingで
いってたけど、今は、メモリ共有のために仕組みがある以外は、 ローカルヒープとあんましかわらない、みたい。
- 841 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:42:12 ]
- WinXP SP2だと、1Kから1バイトずつ伸ばしても全然失敗しないな……
フラグの指定がおかしいんじゃね? ちなみに可変長のGlobalヒープが欲しい時は、 CreateStreamOnHGlobal + GetHGlobalFromStream がお勧めだ。
- 842 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:43:23 ]
- 16KBのメモリチャンク云々って話をどっかで見た気がするが忘れた。
- 843 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:08:13 ]
- 同じくWinXP SP2、初期サイズ1KB、増加サイズ1KBずつだと4KBで失敗。GetLastErrorは8。
増加サイズが変わると失敗するサイズも変わる。法則は謎。 GMEM_MOVEABLEすればもちろん失敗しないけど。
- 844 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:28:01 ]
- ちょっとコード晒せ
- 845 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:47:55 ]
- >>816
ゲンミツに言うとCreateWindowEx呼んでるだけだったような気もするけど
- 846 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:56:31 ]
- HeapAlloc/HeapReAllocだとどうなる?
- 847 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 01:38:24 ]
- >>845
手元のWin16APIヘルプだと CreateWindow(2.x) CreateWindowEx(3.0) って書いてあった。
- 848 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 02:33:48 ]
- 取り込んだ画像を任意の角度に回転させるAPIってありますか?
- 849 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 03:11:05 ]
- GDI+
- 850 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 06:48:51 ]
- >>813
NTの最初のバージョンは3.1だが? NTじゃないWindows 1.0がマルチスレッドやUnicodeに対応しているわけないし
- 851 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 10:12:50 ]
- GlobalReAllocで固定メモリの領域拡大に失敗するのか
まさか単に断片化しているだけというオチじゃなかろうな
- 852 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 10:13:53 ]
- また随分とバックパスなw
>>850 >>813は1.0時代のAPIだって今はUnicode版があるって言ってる 当たり前といえば当たり前
- 853 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 10:27:48 ]
- GlobalAlloc懐かしいな。
- 854 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 11:37:40 ]
- >>851
それが原因な気がするけどなー toolhlpとかプロセスメモリエディタで覗いてみたら良いんでは
- 855 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 11:50:50 ]
- そもそもGlobalAllocなんてクリップボードとOLEドラッグ以外に使うべきでは無い
どうせ猫でも見て変な知識付けたのだろうが
- 856 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 12:16:36 ]
- HeapAlloc(malloc)か、サイズが数MB超えるならVirtualAlloc使えよ。
- 857 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 13:06:37 ]
- そういう話は>>836で終わってる。
- 858 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 13:35:10 ]
- 英語が読めないので>>837で再開
- 859 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 15:22:23 ]
- 1.xの遺物 AnyPopup();
- 860 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 15:33:01 ]
- WS_CHILDで子コントロールとして貼り付けられたダイアログって
親ウインドウが破棄されると自動的に破棄されますよね?
- 861 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 15:49:13 ]
- いいえ
- 862 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 15:51:44 ]
- DestroyWindowの解説に書いてある
- 863 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 15:53:45 ]
- はい
- 864 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 16:07:53 ]
- >>852
そりゃWin32で代わりがないAPIについてだろ。 _lcreatとかOpenFileとかにUnicode版はない
- 865 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 18:27:11 ]
- PIDLがデスクトップを指してるかどうかって、
ILGetSizeを使って2byteかどうかで判定していい?
- 866 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 18:45:29 ]
- >>865
SHGetSpecialFolderLocation(NULL,CSIDL_DESKTOP) + ILIsEqual()で判断するのが安牌
- 867 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 19:36:01 ]
- CreatePrivateObjectSecurityWithMultipleInheritance
nagasugi warota
- 868 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 20:19:00 ]
- >>866
ども。そうだよね
- 869 名前:834 [2007/12/01(土) 21:48:40 ]
- こんなに大勢が答えてくれるなんてありがてぇありがてぇ
コードはこうなってるが、素人なんで汚いだろうけど #define CHUNK_SIZE 1024 bySrc = GlobalAlloc(GPTR, 1); iCount = 0; dwTotal = 0; do{ ZeroMemory(byTemp, CHUNK_SIZE + 1); if(InternetReadFile(hUrl, byTemp, CHUNK_SIZE, &dwRead) == FALSE){ //失敗したら MessageBox(hwnd, TEXT("読み込みに失敗しました。"), TEXT("InternetReadFile Failure"), MB_OK | MB_ICONWARNING); return -1; } dwTotal += dwRead; bySrc = GlobalReAlloc(bySrc, dwTotal + 1, GMEM_MOVEABLE); if(bySrc == NULL){ wsprintf(szBuffer, TEXT("%d 回目の読み込みで、計%dByte(新たに%dByte)の確保に失敗しました。"), iCount + 1, dwTotal, dwRead); MessageBox(hwnd, szBuffer, TEXT("GlobaReAlloc Failure"), MB_OK | MB_ICONWARNING); GlobalFree(bySrc); return -1; } memcpy(bySrc + (CHUNK_SIZE * iCount), byTemp, dwRead); iCount++; }while(dwRead); で、そのまま強制終了になったり、運がよければ「("20回目の読み込みで、計19984dByte(新たに1024Byte)の確保に失敗しました。」みたいな感じのエラーが表示される なんでかわからん
- 870 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 21:57:04 ]
- >bySrc + (CHUNK_SIZE * iCount)
とりあえずこれがだめなんじゃない? 毎回CHUNK_SIZEずつ読めてるとは限らないんだし
- 871 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 22:12:30 ]
- >>869
だからそういう目的ならmalloc/realloc使えと言ってるだろうが
- 872 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 22:21:29 ]
- >>869
>bySrc = GlobalReAlloc(bySrc, dwTotal + 1, GMEM_MOVEABLE); 同じ変数で結果を受け取ると、NULLが返ってきたときに元の領域を解放する手段が なくなってしまってメモリリークする。reallocを使った場合も同様なので注意。
- 873 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 22:46:57 ]
- >>870
もろにセキュリティホールだよね。
- 874 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 23:14:54 ]
- > ZeroMemory(byTemp, CHUNK_SIZE + 1);
これは大丈夫なのか?byTempの宣言が書いてないから分からんが
- 875 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 00:01:49 ]
- 祝
☆ 国 取 り 1 6 0 人 到 達 ☆
- 876 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 00:04:05 ]
- 何?
- 877 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:15:57 ]
- 桂蚕糸?
- 878 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 05:24:18 ]
- XNResourceEditorって境界線の無いダイアログ作れないのかな
ちゃんと設定してもどうしても境界線が残るんだが
- 879 名前:834 [2007/12/02(日) 07:46:48 ]
- おまいらなんでこんなに優しいん?
普段ボロクソ言われてるってのに(涙 一応宣言はこうなってる BYTE byTemp[CHUNK_SIZE + 1]; static BYTE *bySrc; それから >同じ変数で結果を受け取ると、NULLが返ってきたときに元の領域を解放する手段が なくなってしまってメモリリークする の部分を改善してみた bySrc = GlobalReAlloc(bySrc, dwTotal + 1, GMEM_MOVEABLE); if(bySrc == NULL){ wsprintf(szBuffer, TEXT("%d 回目の読み込みで、計%dByte(新たに%dByte)の確保に失敗しました。"), iCount + 1, dwTotal, dwRead); MessageBox(hwnd, szBuffer, TEXT("GlobaReAlloc Failure"), MB_OK | MB_ICONWARNING); GlobalFree(bySrc); bySrc = NULL; return -1; } あと、>bySrc + (CHUNK_SIZE * iCount) の部分 を memcpy(bySrc + dwTotal - dwRead, byTemp, dwRead); としたら、すべてうまくいきました!!!!!!!!!!!!!!!うれしいっす!!! 芋くさいコードだけど、晒してよかった・・ ひとつ問題が解決すると、ほんとに気持ちがいいな ありがとうな。お前ら
- 880 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 07:55:50 ]
- FillMemoryの4バイト版ってあったりしますか
- 881 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 08:16:45 ]
- >>879
>static BYTE *bySrc; 使い方から見てstaticで宣言する意味なくね? >bySrc = GlobalReAlloc(bySrc, dwTotal + 1, GMEM_MOVEABLE); 改善されてないじゃん。こうだろ。 BYTE *byNewSrc; byNewSrc = GlobalReAlloc(bySrc, dwTotal + 1, GMEM_MOVEABLE); if (byNewSrc) { bySrc = byNewSrc; } else { wsprintf.....略 }
- 882 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 09:21:06 ]
- >>880
無いです そのくらい自分で書け
- 883 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 12:25:26 ]
- memset(buf,0,4);
FillMemory(buf,4,0);
- 884 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 12:58:49 ]
- それちゃうやろw
- 885 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 13:04:22 ]
- #if defined(RtlFillMemory)
#undef RtlFillMemory EXTERN_C VOID WINAPI RtlFillMemory( IN VOID UNALIGNED *Destination, IN SIZE_T Length, IN UCHAR Fill); #endif こうしておかないとダメってことか
- 886 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 15:03:34 ]
- >>880
rep stosd
- 887 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 17:24:48 ]
- 教えてください。
自分自信のウィンドウハンドルを取得するには FindWindowとEnumWindowを使わず取得する方法ってありますか?
- 888 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 17:26:54 ]
- 自分自身のウィンドウハンドルは自分で作ったんだからわざわざ取得しなくても最初から知ってるはずでは
- 889 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 17:27:17 ]
- >>887
WM_CREATEで保存しとけ
- 890 名前:887 mailto:sage [2007/12/02(日) 18:41:21 ]
- >>888,889
そういうのではなくてDLLでロードされたタイミングでそのDLLが マップされたプロセスのウィンドウハンドルを取得するという作りなので WM_CREATEとかでは無理なのです。 GetCurrentProcessId+EnumWindowsで取得という手もあるんですけど 他にやり方がないのかなと思ってレスしてみました。 因みにGetForegroundWindow、FindWindow以外のやり方でお願いします。
- 891 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 18:42:04 ]
- ねーよ
- 892 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 18:44:21 ]
- 質問です
このスレに女性はいますか?
|

|