ファイルが存在しない場合は 0xFFFFFFFF を返す。DWORD GetFileAttributes( LPCTSTR lpFileName // pointer to the name of a file or directory );
ただし、 この API を使うには Internet Explorer 4.0 以降が インストールされた環境が必要。BOOL PathFileExists( LPCTSTR lpszPath );
                     
protected:
    NOTIFYICONDATA		m_stNtfyIcon;
                            
     をメンバ変数として追加。              
CMyDialog::OnInitDialog あたりに
    
    /////////////////////////////////////////////////
    // アイコンをタスクトレイに表示します。
    m_stNtfyIcon.cbSize = sizeof( NOTIFYICONDATA ); 
    m_stNtfyIcon.uID	= 0;
    m_stNtfyIcon.hWnd	= m_hWnd;
    m_stNtfyIcon.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
    m_stNtfyIcon.hIcon	= AfxGetApp()->LoadIcon( IDR_MAINFRAME );
    m_stNtfyIcon.uCallbackMessage = WM_USER_NTFYICON;
    lstrcpy( m_stNtfyIcon.szTip, _T( "テスト" ) );
    ::Shell_NotifyIcon( NIM_ADD, &m_stNtfyIcon );
              
       アイコンの削除
       
CMyDialog::OnDestroy あたりに
    //タスクトレイのアイコンを削除します。
    ::Shell_NotifyIcon( NIM_DELETE, &m_stNtfyIcon );
       タスクトレイ上のアイコンに操作があった場合の処理
       
       	      	      	             
LRESULT CMyDialog::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	switch( message )
	{
		case WM_USER_NTFYICON:  //アイコンからのメッセージ。
		{
			if( lParam == WM_LBUTTONDOWN ){
			// 左クリック時の処理
			}
			else if( lParam == WM_RBUTTONDOWN ){
				// 右クリック時の処理
			}
		}
		return 0;
	}       
	return CDialog::WindowProc(message, wParam, lParam);
}
       	      	      	                    
 
       参考のページで、ICONハンドルが取れる。HICON hIcon = ::ExtractIcon( AfxGetInstanceHandle(), szFileName, i ) ;
SHFILEINFO sfi; DWORD dwRet; HICON hIcon; // タイトルの拾得 dwRet = ::SHGetFileInfo( szFileName, 0, &sfi, sizeof(SHFILEINFO FAR), SHGFI_DISPLAYNAME ); // sfi.szDisplayName; // 小さいアイコンの拾得 dwRet = ::SHGetFileInfo( szFileName, 0, &sfi, sizeof(SHFILEINFO FAR), SHGFI_ICON | SHGFI_SMALLICON ); // sfi.hIcon // 大きいアイコンの拾得 dwRet = ::SHGetFileInfo( szFileName, 0, &sfi, sizeof(SHFILEINFO FAR), SHGFI_ICON | SHGFI_LARGEICON ); // sfi.hIcon
ANIMATIONINFO	info;
int  iMinAnimate; 
info.cbSize = sizeof( ANIMATIONINFO	);
::SystemParametersInfo( SPI_GETANIMATION, sizeof(info), (PVOID)&info, 0 ); 
if( info.iMinAnimate ){
    info.iMinAnimate = 0;
    ::SystemParametersInfo( SPI_SETANIMATION, sizeof(info), (PVOID)&info, 
	                            SPIF_SENDCHANGE ); 
    ::EnumWindows(EnumWindowsProc, 0);
    info.iMinAnimate = 1;
    ::SystemParametersInfo( SPI_SETANIMATION, sizeof(info), (PVOID)&info, 
                            SPIF_SENDCHANGE ); 
}
else{
    ::EnumWindows(EnumWindowsProc, 0);
}
              
       コールバック関数は以下のようになる。       
static BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam )
{
    if( ::IsIconic( hwnd ) == 0) {
        if( ( GetWindowLong( hwnd,  GWL_STYLE ) & WS_VISIBLE ) ){
            if(! (GetWindowLong(hwnd,GWL_EXSTYLE) & WS_EX_TOOLWINDOW) ){
                ::ShowWindowAsync(hwnd, SW_SHOWMINNOACTIVE );
            }
        }
    }
    return TRUE;
}
       
       MFCTRACE("メッセージ \n");ATL_RPT0(_CRT_WARN, "メッセージ \n");
次にVisual Studio を起動した時から、 設定が有効になる。intptr_t uintptr_t size_t