UINT EnumClipboardFormats(UINT format);
本関数の実行前にOpenClipboardでクリップボードをオープンしていなければならない。
列挙を開始するには、まず引数に0を指定してEnumClipboardFormatsを呼び出す。戻り値は、一番目のフォーマットである。次に、一番目のフォーマットを引数に指定してEnumClipboardFormatsを呼び出す。戻り値は、二番目のフォーマットとなる。以下同様に繰り返し、これ以上フォーマットがない場合、0が返される。
引数の意味は以下の通り。
| format | フォーマットを表す値。渡された値の次のフォーマットが返される。 |
戻り値は、formatで指定したフォーマットの次のフォーマットを表す値である。エラーが発生した場合、または列挙が終了した場合、0が返される。
void DispClipFormats(void)
{
int format;
char buf[1000];
OpenClipboard(NULL);
format = EnumClipboardFormats(0);
while(format != 0) {
switch(format) {
case CF_TEXT: printf("CF_TEXT\n"); break;
case CF_BITMAP: printf("CF_BITMAP\n"); break;
case CF_METAFILEPICT: printf("CF_METAFILEPICT\n"); break;
case CF_SYLK: printf("CF_SYLK\n"); break;
case CF_DIF: printf("CF_DIF\n"); break;
case CF_TIFF: printf("CF_TIFF\n"); break;
case CF_OEMTEXT: printf("CF_OEMTEXT\n"); break;
case CF_DIB: printf("CF_DIB\n"); break;
case CF_PALETTE: printf("CF_PALETTE\n"); break;
case CF_PENDATA: printf("CF_PENDATA\n"); break;
case CF_RIFF: printf("CF_RIFF\n"); break;
case CF_WAVE: printf("CF_WAVE\n"); break;
case CF_UNICODETEXT: printf("CF_UNICODETEXT\n"); break;
case CF_ENHMETAFILE: printf("CF_ENHMETAFILE\n"); break;
case CF_HDROP: printf("CF_HDROP\n"); break;
case CF_LOCALE: printf("CF_LOCALE\n"); break;
case CF_MAX: printf("CF_MAX\n"); break;
case CF_OWNERDISPLAY: printf("CF_OWNERDISPLAY\n"); break;
case CF_DSPTEXT: printf("CF_DSPTEXT\n"); break;
case CF_DSPBITMAP: printf("CF_DSPBITMAP\n"); break;
case CF_DSPMETAFILEPICT: printf("CF_DSPMETAFILEPICT\n"); break;
case CF_DSPENHMETAFILE: printf("CF_DSPENHMETAFILE\n"); break;
default:
GetClipboardFormatName(format, buf, 1000);
printf("%s\n", buf);
}
format = EnumClipboardFormats(format);
}
CloseClipboard();
}