WMI を使おうと思ったらRPC_E_TOO_LATEが返ってきた件
WMI を使おうと思ったら RPC_E_TOO_LATE 0x80010119 が返ってくるエラーが。
前任者のソース見たら、
if(hRes == RPC_E_TOO_LATE){ // 正常値を返す hRes = NULL; } |
となっていて、この場合無視して処理することになってたでござる
はたしてそのまま処理していいのかって話なんだけど、
継続したらこうなった
hRes = pEnumBIOS->Next(TIMEOUT, 1, &pBIOS, &uReturned); // hRes = 0x80041003 (WBEM_E_ACCESS_DENIED) if(hRes != S_OK){ IErrorInfo *pIerrinfo; if(GetErrorInfo(0, &pIerrinfo) == S_OK){ BSTR *pbstrErr = NULL; if(pIerrinfo->GetDescription(pbstrErr) == S_OK){ <-ここでクラッシュ |
WMI Error Constants (Windows)
|。・ω・)。o ( あかんやんか! )
結論:RPC_E_TOO_LATE は無視してはいけない
最初の ShowWindow(hDlg,1);
より前で呼ぶと RPC_E_TOO_LATE が S_OK に変わったでござる。
Comments