13 #pragma managed( push, off ) 50 if ( !cFile.
Open( pszPath ) ) {
82 if ( !cFile.
Create( pszPath ) ) {
111 if (
nullptr != pszKey ) {
138 if ( !
GetPath( cPath, pszKey, nIndex ) ) {
145 if (
nullptr == pcJson ) {
171 if ( !
GetPath( cPath, pszKey, nIndex ) ) {
178 if (
nullptr == pcJson ) {
196 rnValue = ::wcstol( cValue,
nullptr, 10 );
214 if ( !
GetPath( cPath, pszKey, nIndex ) ) {
239 bool CJsonConfig::Get( std::initializer_list< int* >
const& rpnValueList,
wchar_t const* pszKey ) noexcept {
245 for (
auto pcIter = rpnValueList.begin();; ++pcIter, ++nIndex ) {
247 if ( rpnValueList.end() == pcIter ) {
255 if ( !
GetPath( cPath, pszKey, nIndex ) ) {
262 if (
nullptr == pcJson ) {
280 if (
nullptr != *pcIter ) {
281 **pcIter = ::wcstol( cValue,
nullptr, 10 );
292 bool CJsonConfig::Set( std::initializer_list< int >
const& rnValueList,
wchar_t const* pszKey ) noexcept {
298 if ( !
GetPath( cPath, pszKey ) ) {
305 for (
auto pcIter = rnValueList.begin();; ++pcIter ) {
307 if ( rnValueList.end() == pcIter ) {
320 else if ( rnValueList.begin() != pcIter ) {
342 if ( !
GetPath( cPath, pszKey, nIndex ) ) {
349 if (
nullptr == pcJson ) {
367 rfValue = ::wcstof( cValue,
nullptr );
385 if ( !
GetPath( cPath, pszKey, nIndex ) ) {
416 if ( !
GetPath( cPath, pszKey, nIndex ) ) {
423 if (
nullptr == pcJson ) {
441 rbValue = ( 0 == ::wcscmp( L
"true", cValue ) );
459 if ( !
GetPath( cPath, pszKey, nIndex ) ) {
466 cPath += ( bValue? L
"true": L
"false" );
490 if ( !
GetPath( cPath, pszKey, nIndex ) ) {
497 if (
nullptr == pcJson ) {
517 bool CJsonConfig::Set(
wchar_t const* pszValue,
wchar_t const* pszKey,
int nIndex ) noexcept {
523 if ( !
GetPath( cPath, pszKey, nIndex ) ) {
559 if ( !
Get( { &nLeft, &nTop, &nWidth, &nHeight }, pszKey ) ) {
565 ::SetWindowPos( hWnd, HWND_TOP, nLeft, nTop, nWidth, nHeight, ( SWP_NOACTIVATE | SWP_SHOWWINDOW ) );
566 ::UpdateWindow( hWnd );
583 WINDOWPLACEMENT sWndPlace = {
sizeof( WINDOWPLACEMENT ) };
584 if ( 0 == ::GetWindowPlacement( hWnd, &sWndPlace ) ) {
590 int nLeft = sWndPlace.rcNormalPosition.left;
591 int nTop = sWndPlace.rcNormalPosition.top;
592 int nWidth = ( sWndPlace.rcNormalPosition.right - sWndPlace.rcNormalPosition.left );
593 int nHeight = ( sWndPlace.rcNormalPosition.bottom - sWndPlace.rcNormalPosition.top );
594 if ( !
Set( { nLeft, nTop, nWidth, nHeight }, pszKey ) ) {
622 HWND hActive = ::GetActiveWindow();
628 ::ShowWindow( hWnd, SW_SHOWNOACTIVATE );
632 ::ShowWindow( hWnd, SW_SHOWNA );
634 case SW_SHOWMINIMIZED:
636 ::ShowWindow( hWnd, SW_SHOWMINNOACTIVE );
641 ::ShowWindow( hWnd, nShow );
644 if ( hActive != ::GetActiveWindow() ) {
645 ::SetActiveWindow( hActive );
654 ::ShowWindow( hWnd, SW_HIDE );
672 bool bVisible = ( 0 != ::IsWindowVisible( hWnd ) );
675 WINDOWPLACEMENT sWndPlace = {
sizeof( WINDOWPLACEMENT ) };
676 if ( 0 == ::GetWindowPlacement( hWnd, &sWndPlace ) ) {
682 int nShow = sWndPlace.showCmd;
704 if ( !
Get( { &nVisible, &rnShow }, pszKey ) ) {
710 rbVisible = ( 0 != nVisible );
727 if ( !
Set( { bVisible, nShow }, pszKey ) ) {
746 #pragma managed( pop ) #define LogOutHeader()
関数ヘッダマクロ
virtual bool Get(int &rnValue, wchar_t const *pszKey=nullptr, int nIndex=-1) noexcept
整数型設定値取得関数
virtual bool SaveWindowPosition(HWND hWnd, wchar_t const *pszKey=KEY_WINDOW_POS) noexcept
ウィンドウ表示位置保存関数
#define LogOutFooter()
関数フッタマクロ
virtual bool GetShowWindow(HWND hWnd, bool &rbVisible, int &rnShow, wchar_t const *pszKey=KEY_SHOW_WINDOW) noexcept
ウィンドウ表示状態取得関数
virtual bool Delete(wchar_t const *pszKey, int nIndex=-1) noexcept
キー設定値削除関数
virtual bool IsJsonFixed() noexcept
virtual bool CreatePath(wchar_t const *pszPath) noexcept
JSONパス作成関数
static bool GetJsonSetValue(CString &rcValue, CJson *pcJson, bool bClassName=false, bool bQuotes=true) noexcept
JSON設定値文字列取得関数
virtual bool SaveShowWindow(HWND hWnd, wchar_t const *pszKey=KEY_SHOW_WINDOW) noexcept
ウィンドウ表示状態保存関数
virtual bool Open(wchar_t const *pszPath, bool bWrite=false) noexcept
オープン関数
virtual bool Save(wchar_t const *pszPath) noexcept
構成ファイルセーブ関数
static wchar_t const *const KEY_WINDOW_POS
ウィンドウ表示位置キー文字列
virtual bool Set(int nValue, wchar_t const *pszKey=nullptr, int nIndex=-1) noexcept
整数型設定値設定関数
virtual bool SetShowWindow(HWND hWnd, bool bVisible, int nShow, wchar_t const *pszKey=KEY_SHOW_WINDOW) noexcept
ウィンドウ表示状態設定関数
CJsonConfig() noexcept
コンストラクタ
virtual wchar_t const * Format(wchar_t const *pszFormat,...) noexcept
書式設定文字列代入関数
static CJson * FindJsonPath(wchar_t const *pszPath, CJson *pcJson) noexcept
JSONパス検索関数
virtual bool Load(wchar_t const *pszPath) noexcept
構成ファイルロード関数
virtual bool ResumeShowWindow(HWND hWnd, wchar_t const *pszKey=KEY_SHOW_WINDOW) noexcept
ウィンドウ表示状態復元関数
virtual bool OutputDocument(CStreamOut &rcStreamOut) noexcept
JSONドキュメント出力関数
virtual bool IsJsonNumber() noexcept
virtual bool Create(wchar_t const *pszPath, UINT uCodePage=CP_UTF16) noexcept
作成関数
#define NewDelLogOut()
ログ出力許可フラグ取得マクロ
virtual bool GetPath(CString &rcPath, wchar_t const *pszKey=nullptr, int nIndex=-1) noexcept
JSONパス取得関数
static wchar_t const *const KEY_SHOW_WINDOW
ウィンドウ表示状態キー文字列
virtual bool InputDocument(CStream &rcStream) noexcept
JSONドキュメント入力関数
CJson * m_pcJsonCurrent
カレントJSONクラスポインタ
virtual bool ResumeWindowPosition(HWND hWnd, wchar_t const *pszKey=KEY_WINDOW_POS) noexcept
ウィンドウ表示位置復元関数
static bool DeleteJson(CJson *&rpcJson) noexcept
JSONクラス削除関数