// // SUMMARY: 読み込み系メソッド // KTL_INLINE bool NativeLayeredSplashWindow::loadImages(tTJSString const& storage) { sprig::com_ptr<::IStream> in(::TVPCreateIStream(storage, TJS_BS_READ)); if (!in) { KTL_ERROR( KTL_ERROR_SECTION, tTJSString(SPRIG_KRKR_TJS_W("ファイルオープンに失敗しました: ")) + storage, sprig::krkr::bad_state ); return false; } LARGE_INTEGER move; move.QuadPart = 0; ULARGE_INTEGER new_pos; if (FAILED(in->Seek(move, TJS_BS_SEEK_END, &new_pos))) { KTL_ERROR( KTL_ERROR_SECTION, tTJSString(SPRIG_KRKR_TJS_W("ファイルシークに失敗しました: ")) + storage, sprig::krkr::internal_error ); return false; } size_type file_size = static_cast<size_type>(new_pos.QuadPart); if (!file_size) { KTL_ERROR( KTL_ERROR_SECTION, tTJSString(SPRIG_KRKR_TJS_W("ファイルが空です: ")) + storage, sprig::krkr::bad_state ); return false; } move.QuadPart = 0; if (FAILED(in->Seek(move, TJS_BS_SEEK_SET, &new_pos))) { KTL_ERROR( KTL_ERROR_SECTION, tTJSString(SPRIG_KRKR_TJS_W("ファイルシークに失敗しました: ")) + storage, sprig::krkr::internal_error ); return false; } std::vector<byte_type> buffer(file_size); ULONG io_size = 0; if (FAILED(in->Read(&buffer[0], buffer.size(), &io_size))) { KTL_ERROR( KTL_ERROR_SECTION, tTJSString(SPRIG_KRKR_TJS_W("ファイル読込に失敗しました: ")) + storage, sprig::krkr::internal_error ); } return impl_->loadImages(&buffer[0], io_size); }
//--------------------------------------------------------------------------- tTJSString tTJSString::AsLowerCase() const { tjs_int len = GetLen(); if(len == 0) return tTJSString(); tTJSString ret((tTJSStringBufferLength)(len)); const tjs_char *s = c_str(); tjs_char *d = ret.Independ(); while(*s) { if(*s >= TJS_W('A') && *s <= TJS_W('Z')) *d = *s +(TJS_W('a')-TJS_W('A')); else *d = *s; d++; s++; } return ret; }