• ベストアンサー

マイクロソフトのデータ型

PAINTSTRUCT RECT WIN32_FIND_DATA HANDLE HDROP HFONT SIZE HPEN HBRUSH などマイクロソフトのCには恐ろしいほど多くの型があります。 これらの型を参照できるサイトを教えてください。

noname#3823
noname#3823

質問者が選んだベストアンサー

  • ベストアンサー
noname#5537
noname#5537
回答No.1

マイクロソフトの C というより、Windows SDK で定義されている型ですね。 VC++ をお持ちならそのヘルプ(MSDN)で簡単に調べられます。 お持ちでなければオンライン版もあります。 http://www.microsoft.com/japan/msdn/default.asp http://msdn.microsoft.com/ ただ、型などは結構探しにくいので、www.google.co.jp で検索するのが手っ取り早いです。 検索後に「型」とか「構造体」とかを加えるといいです。

noname#3823
質問者

お礼

VC++を持っていないのでマイクロソフトのサイトから検索しなければならないのですが、 検索機能が貧弱なのでなかなかというか全くでてきません。 一覧表でも亜あれがいいのですが。 ありがとうございました。

その他の回答 (2)

noname#5537
noname#5537
回答No.3

> 検索後に「型」とか「構造体」とかを加えるといいです。 もとい。「検索語」です。 具体的には「SIZE 構造体」とかで検索するという意味です。

noname#3823
質問者

お礼

まとめて表やリストにしているサイトが有れば幸いなのですが。 ありがとうございました

noname#4564
noname#4564
回答No.2

TypeDefや構造体、クラスなどはいくらでも新しく作れるので、すべてを調べて把握するのは 事実上無理だと思います。 必要なときに必要なものだけを都度調べる、というスタンスでよいのではないでしょうか?

noname#3823
質問者

お礼

その都度調べるにも調べる手段がなかなか難しいのです。 概要を書いた一覧表でも有ればいいのですが。 ありがとうございました。

関連するQ&A

  • マイクロSDについて教えてください。

    マイクロSDについて教えてください。 先日ヤフーオークションでマイクロSDを購入しました。 SD-C02Gと言う型となります。100枚程度のデータを保存し、ソニーのSRAC-A1と言う型のリーダーでPCに移したのですが、データの7割以上が画像が見れないもしくは、画像が真っ二つになったり、おかしい色合いで見れる状態でした。 なんでかな?と確認した所、SD-C02Gと言う型の商品はTOSHIBA製で通常マイクロSDにTOSHIBAと記載されているようなのですが、購入したものには記載がありませんでした。しかもTAIWANと記載。 素人の見解ですと、おかしいマイクロSDを買ってしまい、マイクロSDのせいと思い、ソニー製のマイクロSDを購入し、使用することにしたのですが、このようなバグなどはよくあるものなのでしょうか? 今回70枚近くのデータが消失したので、とてもがっかりしており、マイクロSD対しての不信感が募っているので、宜しければ情報をいただければと思います。

  • Rectangleで、リソースが解放されない

    只今 Borland C コンパイラ 5.5.1 においてプログラムを書いているのですが、(C言語) 仕様なのかどうなのか、ある処理でウィンドウのサイズを ぐりぐり動かしつづけるとリソースが減っていって フリーズしていしまいます。使用しているWindowsは98SEです。 そのプログラムは、ウィンドウプロシージャにおいて、 case WM_PAINT:  hdc = BeginPaint(hWnd,&ps);    hPen = CreatePen(PS_SOLID, 0, RGB(255,0,0));  hOldPen = (HPEN)SelectObject(hdc, hPen);  hBrush = CreateSolidBrush(RGB(0,255,0));  Rectangle(hdc, 10,10,100,100);  DeleteObject(hPen);  SelectObject(hdc, hOldPen);  DeleteObject(hBrush);  DeleteObject(hOldPen);    EndPaint(hWnd,&ps);  break; という風に、Rectangle関数で画面に四角形を描画しているのですが、どうも上記の処理を何度も行うことにより リソースが解放されずに大量に消費されてしまいます。 C言語においてはまだ少しわかるほどのレベルで、 殆どの関数の意味を今だに理解していなくプログラムの 文法になにかしらの間違いがあるかもしれませんが、 ご指摘いただければ幸いです。

  • c:¥gooは存在するの?

    WIN32_FIND_DATA ffd; HANDLE hf; hf=FindFirstFile("c:\\goo",&ffd); if(hf==INVALID_HANDLE_VALUE)  cout<<"\"c:\\goo\"は存在しません"<<endl; において hf==INVALID_HANDLE_VALUE であればc:¥gooは存在しないとみなして言いのでしょうか? もしc:¥gooが存在することがあればどういうときでしょうか?

  • C#,C++/CLI,MFCにおけるデータ型の対応と、メソッドへの渡し方

    現在、Visual Studio 2005の、Visual C#、C++/CLI、MFCを使ったシステムを構築しています。 具体的には、MFCで書かれたライブラリ(DLL)をC++/CLIでラップし、C#から呼び出して使うというものです。 現在は、http://www.atmarkit.co.jp/fdotnet/special/vcppinvista02/vcppinvista02_04.html http://msdn2.microsoft.com/ja-jp/library/ac7ay120(VS.80).aspx これらのサイトを参考にしながら、一部のMFCで書かれたメソッドを、C#から呼び出すことに成功しました。しかし、int型やHANDLE型などの、上記サイトに記述されているデータ型を用いたメソッドのラッピングや呼び出しはできたのですが、HDCやLPRECTなどの特殊な型の場合のやり方がよく分かりません。 具体的に現在分からないのは、次の通りです。 HDC(デバイスコンテキスト)、HWND(ウィンドウのハンドル)、CIRCLE,RECT等の構造体、LPRECTなどの構造体のアドレス、POINT*などの構造体のポインタ これらが、C#やCLIでどのような型になるのか、メソッドに渡す時にどのように記述するのかが分かりません。 以上、どなたか分かる方いらっしゃいましたら、ご回答をお願いします。

  • CListCtrlに表示している複数ファイルを他アプリへドラッグ&ドロップするには

    CListCtrlに表示している複数ファイルを他アプリへドラッグ&ドロップするソースに手間取っていますのでご教授をお願いします。 (VC++ 6.0のサンプルコードがあまりなくて) なんとか、1つのファイルはできるようになったのですが複数にするやり方がわかりません。 どのようにすればよいでしょうか? また、おかしい箇所などありましたら合わせてお願いします。 ※単純の繋げるだけじゃないんですよね?※ CString fname = "C:\\aaa.txt"; fname += "C:\\bbb.txt"; -環境- ・VC++ 6.0 ・MFC ・ダイアログベース -ソース- void aaaDlg::OnBegindragListView(NMHDR* pNMHDR, LRESULT* pResult) { NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください if(pNMListView->iItem != -1) { CString fname = "C:\\aaa.txt"; // 動作確認のため固定 HDROP hptr = DragCreateFiles(fname); if (hptr == NULL) { *pResult = 0; return; } m_DropData.CacheGlobalData(CF_HDROP, hptr); CRect rect(0,0,0,0); DROPEFFECT effect = m_DropData.DoDragDrop(DROPEFFECT_COPY, rect); } *pResult = 0; } static HDROP DragCreateFiles (LPCSTR fname) { HDROP hDrop; LPDROPFILES lpDropFileStruct; // Allocate dynamic memory for the DROPFILESTRUCT data // structure and for the extra zero-character identifying // that there are no pathnames in the block yet. int flen = lstrlen(fname); hDrop = (HDROP)GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, sizeof(DROPFILES) + flen + 2); // If unsuccessful, return NULL if (hDrop == NULL) return(hDrop); // Lock block and initialize the data members lpDropFileStruct = (LPDROPFILES) GlobalLock(hDrop); memset(lpDropFileStruct,0,sizeof(DROPFILES) + flen + 2); lpDropFileStruct->pFiles = sizeof(DROPFILES); lpDropFileStruct->pt.x = 0; lpDropFileStruct->pt.y = 0; lpDropFileStruct->fNC = FALSE; lpDropFileStruct->fWide = FALSE; char* szPathA = (char*) (&lpDropFileStruct[1]); lstrcpy(szPathA,fname); // Unlock the block and return its handle. GlobalUnlock(hDrop); return(hDrop); }

  • C言語・Windows RECTが渡せない

    C言語のWindowsプログラムで、左クリック後に四角形の描画をしたいのですがうまくいきません。 WM_LBUTTONDOWNイベントで定義したRECT構造体を、別の関数に渡しRectangleで描画したいのですが、その関数内でRECTの値を調べるととんでもない値になっています。 何度やってもどうして値がおかしくなるのかわかりません。 WM_LBUTTONDOWNもWM_PAINTも正常に反応していると思います。 どうか知恵をお貸しくださいm(_ _)m 以下ソースコードのメッセージ処理部分です。 ウィンドウ生成のひな型はサイトの物を丸写しし、正常に動作することを確認しています。 LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; RECT rcPos; switch (msg){ case WM_LBUTTONDOWN: rcPos.top =0; rcPos.left =0; rcPos.bottom =100; rcPos.right =100; InvalidateRect(hWnd, &rcPos, FALSE); break; //ウィンドウの描画 case WM_PAINT: hdc = BeginPaint(hWnd, &ps); DrawGr(hWnd, hdc, &rcPos); EndPaint(hWnd, &ps); break; //ウィンドウの削除 case WM_DESTROY: PostQuitMessage(0); break; default: return(DefWindowProc(hWnd, msg, wParam, lParam)); } return (0L); } //描画 int DrawGr(HWND hWnd, HDC hdc, RECT *rcPos) { int i; HBRUSH hBrush, hOldBrush; char *str_org = "rc.top=%d rc.left=%d rc.bottom=%d rc.right=%d"; char strx[256]; //四角形 hBrush = CreateSolidBrush(RGB(100, 100, 255)); hOldBrush = (HBRUSH)SelectObject(hdc, hBrush); //デバッグ用 wsprintf((LPSTR)strx, (LPCSTR)str_org, rcPos->top, rcPos->left, rcPos->bottom, rcPos->right); MessageBox(hWnd, (LPCSTR)strx, (LPCSTR)"終了確認", MB_OKCANCEL | MB_ICONQUESTION); Rectangle(hdc, rcPos->left, rcPos->top, rcPos->right, rcPos->bottom); SelectObject(hdc, hOldBrush); DeleteObject(hBrush); return 0; }

  • マイクロソフトアウトルックの保存フォルダの修正が出来ません

    マイクロソフトアウトルックの保存フォルダをメールサイズを減らす為に、削除したいメールなどをクリック&ドラッグして「削除」としても、あるいはクリックドラッグしてフォルダ移動しようとしても 「ファイルC:¥・・・Documentsにアクセスできませんでした。データエラー(巡回冗長(CRC)エラーです。)」と表示されます。 何度かアウトルックをアンインストール&インストールを経験済みです。同じことが何度も起こるので何か良い対策があればアドバイスください。 お願いします。

  • ファイル名リストの置換処理

    以前、ファイルリストの取得について教えて頂きました。ありがとうございます。 取得したリストを文字列で入れ替えるにはどうすればよいでしょうか 例えば取得したリストの最初の位置の文字列dml[0]をEcoDataFileNameと置き換えたいです。 #include <Windows.h> #include <map> #include <vector> #include <string> #include <iostream> #include "time.h" using namespace std; bool operator<(const FILETIME& x, const FILETIME& y) { if ( x.dwHighDateTime < y.dwHighDateTime ) return true; if ( y.dwHighDateTime < x.dwHighDateTime ) return false; return x.dwLowDateTime < y.dwLowDateTime; } class DML_Backup { vector<string> files_; public: void search(const char* spec) { typedef multimap<FILETIME,string> map_type; map_type files; WIN32_FIND_DATAA find_data; HANDLE handle = FindFirstFileA(spec, &find_data); if ( handle != INVALID_HANDLE_VALUE) { do {   files.insert(map_type::value_type(find_data.ftLastWriteTime, find_data.cFileName)); } while ( FindNextFileA( handle, &find_data) ); FindClose(handle); } files_.clear(); for ( map_type::iterator iter = files.begin(); iter != files.end(); ++iter ) { files_.push_back(iter->second); } } string operator[](int inx) const { return files_.at(inx).c_str(); } int size() const { return files_.size(); } }; int main() { DML_Backup dml; char EcoDataFileName="MonJun131956122011.ecd"; dml.search("*.ecd"); }

  • マイクロソフトアップデートにアクセスできません

    マイクロソフトアップデートに接続しようとすると画面が真っ白のままIE8がフリーズします。 他のサイトではこのようなことはないのですが、メッセンジャーでチャットをしてる最中、窓をIE8に切り替えようとするとフリーズすることがあります。 http://www.atmarkit.co.jp/fnetwork/rensai/troutol07/01.html こちらを参考にコマンドプロンプトを打ってみたところ Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\****>ping windowsupdate.microsoft.com Pinging windowsupdate.microsoft.nsatc.net [207.46.225.221] with 32 bytes of data : Request timed out. Request timed out. Request timed out. Request timed out. Ping statistics for 207.46.225.221: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), C:\Documents and Settings\****>nslookup windowsupdate.microsoft.com *** Can't find server name for address 192.168.1.1: Non-existent domain *** Default servers are not available Server: UnKnown Address: 192.168.1.1 Non-authoritative answer: Name: windowsupdate.microsoft.nsatc.net Address: 207.46.225.221 Aliases: windowsupdate.microsoft.com となりました。 因みにIPアドレスからは接続できませんでした。

  • hPF=SelectObject(hD,hF);は何故エラーに

    HFONT hF,hPF; ・・・・・・・・・・・・・・ hD=BeginPaint(hW,&ps); hF=CreateFont(10,0,0,0,FW_NORMAL,FALSE,FALSE,FALSE,  SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,  DEFAULT_QUALITY,FIXED_PITCH|FF_MODERN,"System"); hPF=SelectObject(hD,hF);//ここがエラー ・・・・・・・・・・・・・・ において hPF=SelectObject(hD,hF);//ここがエラー を単に SelectObject(hD,hF);//これでエラーでなくなる とすればエラーでなくなります エラー内容は Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland goo.cpp: エラー E2034 goo.cpp 808: 'void *' 型は 'HFONT__ *' 型に変換できない(関数 __stdcall WinProcedure(HWND__ *,unsigned int,unsigned int,long) ) *** 1 errors in Compile *** hPFを後で使いたいので困っています どうしたらエラーがなくなるでしょうか?

専門家に質問してみよう