这个函数是FORMAT的API吧,具体我也不清楚,所以要查MSDN啊,
有没有大虾能帮助解答一下啊

解决方案 »

  1.   

    看看这个,也许有帮助http://support.microsoft.com/default.aspx?scid=kb;EN-US;q173688
      

  2.   

    在MSDN中用Search查一下SHFormatDrive,的确有一篇文章。
    在Knowledge Base Articles中,挺长,不好贴过来。
    大致意思就是说这个函数在SHELL32.LIB(缺省包含的LIB)是有的,
    但是SDK的帮助文档和SHELLAPI.H中没有说。
    不过仍然可以使用,需要自己声明一下。用法(我简化了一下)如下:声明:
    #if !defined(SHFMT_OPT_FULL)
    #if defined (__cplusplus)
    extern "C" {
    #endif
    DWORD WINAPI SHFormatDrive(HWND hwnd, UINT drive, UINT fmtID, UINT options);
    #define SHFMT_ID_DEFAULT   0xFFFF
    #define SHFMT_OPT_FULL     0x0001
    #define SHFMT_OPT_SYSONLY  0x0002
    #define SHFMT_ERROR     0xFFFFFFFFL
    #define SHFMT_CANCEL    0xFFFFFFFEL
    #define SHFMT_NOFORMAT  0xFFFFFFFDL
    #if defined (__cplusplus)
    }
    #endif
    #endif
    使用(举例格式化A盘):
    ::SHFormatDrive (::AfxGetMainWnd()->m_hWnd, 0 /* A: */, SHFMT_ID_DEFAULT, 0);