00001 #pragma once 00002 00008 //#include "tools.h" 00009 00010 #ifdef WIN32 00011 #pragma warning(disable:4005) 00012 #pragma warning(disable:4996) 00013 #endif 00014 00015 #ifndef _CRT_SECURE_NO_WARNINGS 00016 #define _CRT_SECURE_NO_WARNINGS 00017 #endif 00018 00019 #ifndef _WIN32_WINNT 00020 #define _WIN32_WINNT _WIN32_WINNT_MAXVER 00021 #endif 00022 00023 // 00024 #include <afxmt.h> 00025 00026 #include "WinBaseResource.h" 00027 #include "BasicLib.h" 00028 00029 #include <userenv.h> 00030 #include <imagehlp.h> 00031 #include <locale.h> 00032 00033 // Locale 00034 #define JBXWL_LOCALE_US "English" 00035 #define JBXWL_LOCALE_JP "Japanese" 00036 00037 00038 // Windows メッセージ 00039 #define JBXWL_WM_USER WM_USER + 9000 00040 00041 #define JBXWL_WM_NETWORK_EVENT JBXWL_WM_USER + 100 00042 #define JBXWL_WM_NETWORK_OPEN JBXWL_WM_USER + 101 00043 #define JBXWL_WM_NETWORK_CLOSE JBXWL_WM_USER + 102 00044 #define JBXWL_WM_SPEECH_EVENT JBXWL_WM_USER + 110 00045 00046 00047 00048 // 00049 namespace jbxwl { 00050 00051 00053 // Unicode 00054 00055 // 変換 00057 Buffer tc2Buffer(TCHAR* tchar, int size=-1); 00058 Buffer ts2Buffer(LPCTSTR str, int size=-1); 00059 00060 CString mbs2ts(char* str); 00061 inline char* ts2mbs(LPCTSTR str) // 要 free. NULL は絶対に返ってこない 00062 { 00063 Buffer buf = ts2Buffer(str); 00064 return (char*)buf.buf; 00065 } 00066 00067 // 00068 int copy_ts2Buffer(LPCTSTR str, Buffer* buf); 00069 int cat_ts2Buffer (LPCTSTR str, Buffer* buf); 00070 00071 // File 00072 unsigned long int file_size_t(LPCTSTR fn); 00073 BOOL file_exist_t (LPCTSTR fn); 00074 CString get_file_name_t (LPCTSTR str); 00075 CString make_file_path_t(LPCTSTR str); 00076 CString cut_file_extension_t(LPCTSTR str); 00077 00078 #define get_file_path_t(p) make_file_path_t((p)) 00079 #define del_file_extension_t(p) cut_file_extension_t((p)) 00080 00081 tList* read_index_tList_file_t(LPCTSTR fn, char cc); 00082 tList* get_dir_files_t(LPCTSTR dirn); 00083 tList* get_dir_files_rcsv_t(LPCTSTR dirn); 00084 00085 // Tools 00086 CString numbering_name_t(LPCTSTR fmt, int n); 00087 CString get_tstr_param_tList(tList* lt, char* key, LPCTSTR dflt); 00088 00089 // locale 00090 void setResourceLocale(void); // リソース IDS_STR_LOCALE が示すロケールに設定する. 00091 CString getResourceLocale(void); // リソース IDS_STR_LOCALE が示すロケールを返す. 00092 void setSystemLocale(LPCTSTR locale=_T("")); // システムのロケールを設定する. 00093 00094 00096 // User 00097 00098 CString GetCurrentUserHomeFolder(void); 00099 CString GetDefaultUserHomeFolder(void); 00100 CString MakeWorkingFolderPath(LPCTSTR fnm, BOOL local, LPCTSTR dir=NULL, BOOL make=FALSE); 00101 00102 CString GetProgramFolder(void); 00103 char* GetProgramFolderA(void); 00104 00105 CString GetCurrentFolder(void); 00106 00107 00109 // Message 00110 00111 // 自ウィンドウにメッセージを送る. 00112 void SendWinMessage(UINT mesg, WPARAM wparam=NULL, LPARAM lparam=NULL); 00113 00114 00116 // Key Event 00117 00118 enum SENDKEY_Action 00119 { 00120 SENDKEY_TapAction, 00121 SENDKEY_DownAction, 00122 SENDKEY_UpAction 00123 }; 00124 00125 // 00126 void SendKeyAction(WORD key, SENDKEY_Action action); 00127 00128 inline void SendKeyActionTap(WORD key) { SendKeyAction(key, SENDKEY_TapAction);} 00129 void SendKeyActionTap(WORD key1, WORD key2); 00130 void SendKeyActionTap(WORD key1, WORD key2, WORD key3); 00131 00132 // 00133 inline void SendKeyActionTapAlt(WORD key) { SendKeyActionTap(VK_LMENU, key);} 00134 inline void SendKeyActionTapShift(WORD key){ SendKeyActionTap(VK_LSHIFT, key);} 00135 inline void SendKeyActionTapCtrl(WORD key) { SendKeyActionTap(VK_LCONTROL, key);} 00136 00137 // 00138 BOOL DoSystemKeyAction(LPCTSTR com, BOOL child=FALSE); 00139 00140 00142 // Mouse Cursor 00143 00144 TCHAR* GetMouseCursorType(void); 00145 00146 00148 // Time 00149 00150 // 1分計 0-59999ms を返す. 00151 unsigned short GetMsecondsTimer(void); 00152 unsigned short GetMsecondsLapTimer(unsigned short pm, unsigned short* nt=NULL); 00153 00154 00156 // Resource 00157 00158 inline CString LoadString_byID(UINT id) 00159 { 00160 CString mesg; 00161 mesg.LoadString(id); 00162 return mesg; 00163 } 00164 00165 00167 // Event Handler クラス 00168 00169 class EventHandler 00170 { 00171 public: 00172 EventHandler(void); 00173 EventHandler(BOOL manual, BOOL initial=FALSE, LPCTSTR hname=NULL, LPSECURITY_ATTRIBUTES sec=NULL); 00174 00175 virtual ~EventHandler(void) { clear();} 00176 00177 HANDLE m_handle; 00178 DWORD m_wait_err; 00179 00180 public: 00181 HANDLE create(BOOL manual=TRUE, BOOL initial=FALSE, LPCTSTR hname=NULL, LPSECURITY_ATTRIBUTES sec=NULL); 00182 void clear(void); 00183 00184 BOOL set(void) { return SetEvent(m_handle);} 00185 00186 BOOL wait(DWORD msec=INFINITE); 00187 BOOL wait(HANDLE handle, DWORD msec=INFINITE); 00188 }; 00189 00190 00191 00193 // メッセージ Dialog 00194 00195 int MessageDLG(LPCTSTR ttl, LPCTSTR msg, UINT type, HWND hWnd); 00196 00197 00198 00200 // Process/Thread 00201 00202 void WinSystem(char* command, DWORD flag, BOOL wait); 00203 00204 00205 00207 // 00208 00209 // 00210 // SafeRelease(), DXRELEASE() [Dx9.h] と同じ 00211 // 00212 template <class T> inline void releaseNull(T*& ptr) 00213 { 00214 if (!jbxl::isNull(ptr)) { 00215 ptr->Release(); 00216 ptr = NULL; 00217 } 00218 } 00219 00220 00221 00222 template <class T> inline void deleteNull(T*& ptr) 00223 { 00224 if (!jbxl::isNull(ptr)) { 00225 delete ptr; 00226 ptr = NULL; 00227 } 00228 } 00229 00230 00231 } // namespace 00232 00233 00234 00235 00236 /* 00237 HRESULT Code: http://support.microsoft.com/kb/186063/ja 00238 00239 0x8000FFFF Catastrophic failure. 00240 0x8007000D The Data is invalid. 00241 0x80004001 Not implemented. 00242 0x8007000E Ran out of memory. 00243 0x80070057 One or more arguments are invalid. 00244 0x80004002 No such interface supported. 00245 0x80004003 Invalid pointer. 00246 0x80070006 Invalid handle. 00247 0x80004004 Operation aborted. 00248 0x80004005 Unspecified error. 00249 0x80070005 General access denied error. 00250 0x80000001 Not implemented. 00251 0x80000002 Ran out of memory. 00252 0x80000003 One or more arguments are invalid. 00253 0x80000004 No such interface supported. 00254 0x80000005 Invalid pointer. 00255 0x80000006 Invalid handle. 00256 0x80000007 Operation aborted. 00257 0x80000008 Unspecified error. 00258 0x80000009 General access denied error. 00259 0x8000000A The data necessary to complete this operation not yet available. 00260 0x80004006 Thread local storage failure. 00261 0x80004007 Get shared memory allocator failure. 00262 0x80004008 Get memory allocator failure. 00263 0x84009 Unable to initialize class cache. 00264 0x8400A Unable to initialize RPC services. 00265 0x8000400B Cannot set thread local storage channel control. 00266 0x8000400C Could not allocate thread local storage channel control. 00267 0x8000400D The user supplied memory allocator is unacceptable. 00268 0x8000400E The OLE service mutex already exists. 00269 0x8000400F The OLE service file mapping already exists. 00270 0x80004010 Unable to map view of file for OLE service. 00271 0x80004011 Failure attempting to launch OLE service. 00272 0x80004012 There was an attempt to call CoInitialize a second time while single threaded. 00273 0x80004013 A Remote activation was necessary but was not allowed. 00274 0x80004014 A Remote activation was necessary but the server name provided was invalid. 00275 0x80004015 The class is configured to run as a security id different from the caller. 00276 0x80004016 Use of Ole1 services requiring DDE windows is disabled. 00277 0x80004017 A RunAs specification must be A RunAs specification must be <domain name><user name> or simply <user name>. 00278 0x80004018 The server process could not be started. The pathname may be incorrect. 00279 0x80004019 The server process could not be started as the configured identity. The pathname may be incorrect or unavailable. 00280 0x8000401A The server process could not be started because the configured identity is incorrect. Check the username and password. 00281 0x8000401B The client is not allowed to launch this server. 00282 0x8000401C The service providing this server could not be started. 00283 0x8000401D This computer was unable to communicate with the computer providing the server. 00284 0x8000401E The server did not respond after being launched. 00285 0x8000401F The registration information for this server is inconsistent or incomplete. 00286 0x80004020 The registration information for this interface is inconsistent or incomplete. 00287 0x80004021 The operation attempted is not supported. 00288 0x80040000 Invalid OLEVERB structure. 00289 0x80040001 Invalid advise flags. 00290 0x80040002 Can't enumerate any more, because the associated data is missing. 00291 0x80040003 This implementation doesn't take advises. 00292 0x80040004 There is no connection for this connection ID. 00293 0x80040005 Need to run the object to perform this operation. 00294 0x80040006 There is no cache to operate on. 00295 0x80040007 Uninitialized object. 00296 0x80040008 Linked object's source class has changed. 00297 0x80040009 Not able to get the moniker of the object. 00298 0x8004000A Not able to bind to the source. 00299 0x8004000B Object is static; operation not allowed. 00300 0x8004000C User cancelled out of save dialog. 00301 0x8004000D Invalid rectangle. 00302 0x8004000E compobj.dll is too old for the ole2.dll initialized. 00303 0x8004000F Invalid window handle. 00304 0x80040010 Object is not in any of the inplace active states. 00305 0x80040011 Not able to convert object. 00306 0x80040012 Not able to perform the operation because object is not given storage yet. 00307 0x80040064 Invalid FORMATETC structure. 00308 0x80040065 Invalid DVTARGETDEVICE structure. 00309 0x80040066 Invalid STDGMEDIUM structure. 00310 0x80040067 Invalid STATDATA structure. 00311 0x80040068 Invalid lindex. 00312 0x80040069 Invalid tymed. 00313 0x8004006A Invalid clipboard format. 00314 0x8004006B Invalid aspect(s). 00315 0x8004006C tdSize parameter of the DVTARGETDEVICE structure is invalid. 00316 0x8004006D Object doesn't support IViewObject interface. 00317 0x80040100 Trying to revoke a drop target that has not been registered. 00318 0x80040101 This window has already been registered as a drop target. 00319 0x80040102 Invalid window handle. 00320 0x80040110 Class does not support aggregation (or class object is remote). 00321 0x80040111 ClassFactory cannot supply requested class. 00322 0x80040140 Error drawing view. 00323 0x80040150 Could not read key from registry. 00324 0x80040151 Could not write key to registry. 00325 0x80040152 Could not find the key in the registry. 00326 0x80040153 Invalid value for registry. 00327 0x80040154 Class not registered. 00328 0x80040155 Interface not registered. 00329 0x80040170 Cache not updated. 00330 0x80040180 No verbs for OLE object. 00331 0x80040181 Invalid verb for OLE object. 00332 0x800401A0 Undo is not available. 00333 0x800401A1 Space for tools is not available. 00334 0x800401C0 OLESTREAM Get method failed. 00335 0x800401C1 OLESTREAM Put method failed. 00336 0x800401C2 Contents of the OLESTREAM not in correct format. 00337 0x800401C3 There was an error in a Windows GDI call while converting the bitmap to a DIB. 00338 0x800401C4 Contents of the IStorage not in correct format. 00339 0x800401C5 Contents of IStorage is missing one of the standard streams. 00340 0x800401C6 There was an error in a Windows GDI call while converting the DIB to a bitmap. 00341 0x800401D0 OpenClipboard Failed. 00342 0x800401D1 EmptyClipboard Failed. 00343 0x800401D2 SetClipboard Failed. 00344 0x800401D3 Data on clipboard is invalid. 00345 0x800401D4 CloseClipboard Failed. 00346 0x800401E0 Moniker needs to be connected manually. 00347 0x800401E1 Operation exceeded deadline. 00348 0x800401E2 Moniker needs to be generic. 00349 0x800401E3 Operation unavailable. 00350 0x800401E4 Invalid syntax. 00351 0x800401E5 No object for moniker. 00352 0x800401E6 Bad extension for file. 00353 0x800401E7 Intermediate operation failed. 00354 0x800401E8 Moniker is not bindable. 00355 0x800401E9 Moniker is not bound. 00356 0x800401EA Moniker cannot open file. 00357 0x800401EB User input required for operation to succeed. 00358 0x800401EC Moniker class has no inverse. 00359 0x800401ED Moniker does not refer to storage. 00360 0x800401EE No common prefix. 00361 0x800401EF Moniker could not be enumerated. 00362 0x800401F0 CoInitialize has not been called. 00363 0x800401F1 CoInitialize has already been called. 00364 0x800401F2 Class of object cannot be determined. 00365 0x800401F3 Invalid class string. 00366 0x800401F4 Invalid interface string. 00367 0x800401F5 Application not found. 00368 0x800401F6 Application cannot be run more than once. 00369 0x800401F7 Some error in application program. 00370 0x800401F8 DLL for class not found. 00371 0x800401F9 Error in the DLL. 00372 0x800401FA Wrong OS or OS version for application. 00373 0x800401FB Object is not registered. 00374 0x800401FC Object is already registered. 00375 0x800401FD Object is not connected to server. 00376 0x800401FE Application was launched but it didn't register a class factory. 00377 0x800401FF Object has been released. 00378 0x80080001 Attempt to create a class object failed. 00379 0x80080002 OLE service could not bind object. 00380 0x80080003 RPC communication failed with OLE service. 00381 0x80080004 Bad path to object. 00382 0x80080005 Server execution failed. 00383 0x80080006 OLE service could not communicate with the object server. 00384 0x80080007 Moniker path could not be normalized. 00385 0x80080008 Object server is stopping when OLE service contacts it. 00386 0x80080009 An invalid root block pointer was specified. 00387 0x80080010 An allocation chain contained an invalid link pointer. 00388 0x80080011 The requested allocation size was too large. 00389 0x80020001 Unknown interface. 00390 0x80020003 Member not found. 00391 0x80020004 Parameter not found. 00392 0x80020005 Type mismatch. 00393 0x80020006 Unknown name. 00394 0x80020007 No named arguments. 00395 0x80020008 Bad variable type. 00396 0x80020009 Exception occurred. 00397 0x8002000A Out of present range. 00398 0x8002000B Invalid index. 00399 0x8002000C Unknown language. 00400 0x8002000D Memory is locked. 00401 0x8002000E Invalid number of parameters. 00402 0x8002000F Parameter not optional. 00403 0x80020010 Invalid callee. 00404 0x80020011 Does not support a collection. 00405 0x80028016 Buffer too small. 00406 0x80028018 Old format or invalid type library. 00407 0x80028019 Old format or invalid type library. 00408 0x8002801C Error accessing the OLE registry. 00409 0x8002801D Library not registered. 00410 0x80028027 Bound to unknown type. 00411 0x80028028 Qualified name disallowed. 00412 0x80028029 Invalid forward reference, or reference to uncompiled type. 00413 0x8002802A Type mismatch. 00414 0x8002802B Element not found. 00415 0x8002802C Ambiguous name. 00416 0x8002802D Name already exists in the library. 00417 0x8002802E Unknown LCID. 00418 0x8002802F Function not defined in specified DLL. 00419 0x800288BD Wrong module kind for the operation. 00420 0x800288C5 Size may not exceed 64K. 00421 0x800288C6 Duplicate ID in inheritance hierarchy. 00422 0x800288CF Incorrect inheritance depth in standard OLE hmember. 00423 0x80028CA0 Type mismatch. 00424 0x80028CA1 Invalid number of arguments. 00425 0x80028CA2 I/O Error. 00426 0x80028CA3 Error creating unique tmp file. 00427 0x80029C4A Error loading type library/DLL. 00428 0x80029C83 Inconsistent property functions. 00429 0x80029C84 Circular dependency between types/modules. 00430 0x80030001 Unable to perform requested operation. 00431 0x80030002 %1 could not be found. 00432 0x80030003 The path %1 could not be found. 00433 0x80030004 There are insufficient resources to open another file. 00434 0x80030005 Access Denied. 00435 0x80030006 Attempted an operation on an invalid object. 00436 0x80030008 There is insufficient memory available to complete operation. 00437 0x80030009 Invalid pointer error. 00438 0x80030012 There are no more entries to return. 00439 0x80030013 Disk is write-protected. 00440 0x80030019 An error occurred during a seek operation. 00441 0x8003001D A disk error occurred during a write operation. 00442 0x8003001E A disk error occurred during a read operation. 00443 0x80030020 A share violation has occurred. 00444 0x80030021 A lock violation has occurred. 00445 0x80030050 %1 already exists. 00446 0x80030057 Invalid parameter error. 00447 0x80030070 There is insufficient disk space to complete operation. 00448 0x800300F0 Illegal write of non-simple property to simple property set. 00449 0x800300FA An API call exited abnormally. 00450 0x800300FB The file %1 is not a valid compound file. 00451 0x800300FC The name %1 is not valid. 00452 0x800300FD An unexpected error occurred. 00453 0x800300FE That function is not implemented. 00454 0x800300FF Invalid flag error. 00455 0x80030100 Attempted to use an object that is busy. 00456 0x80030101 The storage has been changed since the last commit. 00457 0x80030102 Attempted to use an object that has ceased to exist. 00458 0x80030103 Can't save. 00459 0x80030104 The compound file %1 was produced with an incompatible version of storage. 00460 0x80030105 The compound file %1 was produced with a newer version of storage. 00461 0x80030106 Share.exe or equivalent is required for operation. 00462 0x80030107 Illegal operation called on non-file based storage. 00463 0x80030108 Illegal operation called on object with extant marshallings. 00464 0x80030109 The docfile has been corrupted. 00465 0x80030110 OLE32.DLL has been loaded at the wrong address. 00466 0x80030201 The file download was aborted abnormally. The file is incomplete. 00467 0x80030202 The file download has been terminated. 00468 0x80010001 Call was rejected by callee. 00469 0x80010002 Call was canceled by the message filter. 00470 0x80010003 The caller is dispatching an intertask SendMessage call and cannot call out via PostMessage. 00471 0x80010004 The caller is dispatching an asynchronous call and cannot make an outgoing call on behalf of this call. 00472 0x80010005 It is illegal to call out while inside message filter. 00473 0x80010006 The connection terminated or is in a bogus state and cannot be used any more. Other connections are still valid. 00474 0x80010007 The callee (server [not server application]) is not available and disappeared; all connections are invalid. The call may have executed. 00475 0x80010008 The caller (client) disappeared while the callee (server) was processing a call. 00476 0x80010009 The data packet with the marshalled parameter data is incorrect. 00477 0x8001000A The call was not transmitted properly; the message queue was full and was not emptied after yielding. 00478 0x8001000B The client (caller) cannot marshal the parameter data - low memory, etc. 00479 0x8001000C The client (caller) cannot unmarshal the return data - low memory, etc. 00480 0x8001000D The server (callee) cannot marshal the return data - low memory, etc. 00481 0x8001000E The server (callee) cannot unmarshal the parameter data - low memory, etc. 00482 0x8001000F Received data is invalid; could be server or client data. 00483 0x80010010 A particular parameter is invalid and cannot be (un)marshalled. 00484 0x80010011 There is no second outgoing call on same channel in DDE conversation. 00485 0x80010012 The callee (server [not server application]) is not available and disappeared; all connections are invalid. The call did not execute. 00486 0x80010100 System call failed. 00487 0x80010101 Could not allocate some required resource (memory, events, ...) 00488 0x80010102 Attempted to make calls on more than one thread in single threaded mode. 00489 0x80010103 The requested interface is not registered on the server object. 00490 0x80010104 RPC could not call the server or could not return the results of calling the server. 00491 0x80010105 The server threw an exception. 00492 0x80010106 Cannot change thread mode after it is set. 00493 0x80010107 The method called does not exist on the server. 00494 0x80010108 The object invoked has disconnected from its clients. 00495 0x80010109 The object invoked chose not to process the call now. Try again later. 00496 0x8001010A The message filter indicated that the application is busy. 00497 0x8001010B The message filter rejected the call. 00498 0x8001010C A call control interfaces was called with invalid data. 00499 0x8001010D An outgoing call cannot be made since the application is dispatching an input-synchronous call. 00500 0x8001010E The application called an interface that was marshalled for a different thread. 00501 0x8001010F CoInitialize has not been called on the current thread. 00502 0x80010110 The version of OLE on the client and server machines does not match. 00503 0x80010111 OLE received a packet with an invalid header. 00504 0x80010112 OLE received a packet with an invalid extension. 00505 0x80010113 The requested object or interface does not exist. 00506 0x80010114 The requested object does not exist. 00507 0x80010115 OLE has sent a request and is waiting for a reply. 00508 0x80010116 OLE is waiting before retrying a request. 00509 0x80010117 Call context cannot be accessed after call completed. 00510 0x80010118 Impersonate on unsecured calls is not supported. 00511 0x80010119 Security must be initialized before any interfaces are marshalled or unmarshalled. It cannot be changed once initialized. 00512 0x8001011A No security packages are installed on this machine or the user is not logged on or there are no compatible security packages between the client and server. 00513 0x8001011B Access is denied. 00514 0x8001011C Remote calls are not allowed for this process. 00515 0x8001011D The marshalled interface data packet (OBJREF) has an invalid or unknown format. 00516 0x8001FFFF An internal error occurred. 00517 0x80090001 Bad UID. 00518 0x80090002 Bad Hash. 00519 0x80090003 Bad Key. 00520 0x80090004 Bad Length. 00521 0x80090005 Bad Data. 00522 0x80090006 Invalid Signature. 00523 0x80090007 Bad Version of provider. 00524 0x80090008 Invalid algorithm specified. 00525 0x80090009 Invalid flags specified. 00526 0x8009000A Invalid type specified. 00527 0x8009000B Key not valid for use in specified state. 00528 0x8009000C Hash not valid for use in specified state. 00529 0x8009000D Key does not exist. 00530 0x8009000E Insufficient memory available for the operation. 00531 0x8009000F Object already exists. 00532 0x80090010 Access denied. 00533 0x80090011 Object was not found. 00534 0x80090012 Data already encrypted. 00535 0x80090013 Invalid provider specified. 00536 0x80090014 Invalid provider type specified. 00537 0x80090015 Provider's public key is invalid. 00538 0x80090016 Keyset does not exist. 00539 0x80090017 Provider type not defined. 00540 0x80090018 Provider type as registered is invalid. 00541 0x80090019 The keyset is not defined. 00542 0x8009001A Keyset as registered is invalid. 00543 0x8009001B Provider type does not match registered value. 00544 0x8009001C The digital signature file is corrupt. 00545 0x8009001D Provider DLL failed to initialize correctly. 00546 0x8009001E Provider DLL could not be found. 00547 0x8009001F The Keyset parameter is invalid. 00548 0x80090020 An internal error occurred. 00549 0x80090021 A base error occurred. 00550 0x800B0001 The specified trust provider is not known on this system. 00551 0x800B0002 The trust verification action specified is not supported by the specified trust provider. 00552 0x800B0003 The form specified for the subject is not one supported or known by the specified trust provider. 00553 0x800B0004 The subject is not trusted for the specified action. 00554 0x800B0005 Error due to problem in ASN.1 encoding process. 00555 0x800B0006 Error due to problem in ASN.1 decoding process. 00556 0x800B0007 Reading / writing Extensions where Attributes are appropriate, and visa versa. 00557 0x800B0008 Unspecified cryptographic failure. 00558 0x800B0009 The size of the data could not be determined. 00559 0x800B000A The size of the indefinite-sized data could not be determined. 00560 0x800B000B This object does not read and write self-sizing data. 00561 0x800B0100 No signature was present in the subject. 00562 0x800B0101 A required certificate is not within its validity period. 00563 0x800B0102 The validity periods of the certification chain do not nest correctly. 00564 0x800B0103 A certificate that can only be used as an end-entity is being used as a CA or visa versa. 00565 0x800B0104 A path length constraint in the certification chain has been violated. 00566 0x800B0105 An extension of unknown type that is labeled 'critical' is present in a certificate. 00567 0x800B0106 A certificate is being used for a purpose other than that for which it is permitted. 00568 0x800B0107 A parent of a given certificate in fact did not issue that child certificate. 00569 0x800B0108 A certificate is missing or has an empty value for an important field, such as a subject or issuer name. 00570 0x800B0109 A certification chain processed correctly, but terminated in a root certificate which isn't trusted by the trust provider. 00571 0x800B010A A chain of certs didn't chain as they should in a certain application of chaining. 00572 */