CeRapiInitEx の使い方
CeRapiInit は、タイムアウトチェックができません。
Public Enum WAIT_STATUS WAIT_FAILED = -1& WAIT_OBJECT_0 = 0 WAIT_ABONDONED = &H80& WAIT_ABONDONED_0 = &H80& WAIT_TIMEOUT = &H102& End Enum public Structure RAPIINIT Public cbSize As Int32 Public heRapiInit As Integer Public hrRapiInit As Integer End Structure public Declare Function CeRapiInitEx Lib "rapi.dll" (ByRef pRapiInit As RAPIINIT) As Integer Dim oRapiInit As RAPIINIT oRapiInit.cbSize = 12 ' 12バイト固定 nRet = CeRapiInitEx(oRapiInit) If nRet <> HRESULT.S_OK Then ' なんらかのエラー発生 Else ' エラーが発生しなかった場合 ' 待つ nRet = WaitForSingleObject(oRapiInit.heRapiInit, nMilliSeconds) Select Case nRet Case WAIT_STATUS.WAIT_OBJECT_0 ' 成功 Case WAIT_STATUS.WAIT_TIMEOUT ' タイムアウトで失敗 Case Else ' その他の理由で失敗 End Select End If