GetActiveView
いつも面倒と思う CView の取得.
https://dev.mish.work/wordpress/2022/05/20/drop-lnk-on-mdi-exe/
普通は,CDocument から CView を操作することはあまりないものと思う.
が,今回はテスト用のコードで CView での表示情報を更新したくなった.
{
CFrameWnd* pFrameWnd = (CFrameWnd*)AfxGetMainWnd() ;
CFrameWnd* pActiveFrame = pFrameWnd->GetActiveFrame() ;
{
CXxxView* pView = (CXxxView*)pFrameWnd->GetActiveView() ;
if (pActiveFrame != NULL) {
pView = (CXxxView*)pActiveFrame->GetActiveView() ;
}
if (pView != NULL) {
PartsA sel_pa = *(pView->GetSelectP()) ;
{
PartsA err_pa = ::xx_get_error_xx(...) ;
sel_pa += err_pa ;
}
*(pView->GetSelectP()) = sel_pa ;
}
}
UpdateAllViews(NULL) ;
}
それを関数に.
CView* Get_active_view (void)
{
CFrameWnd* pFrameWnd = (CFrameWnd*)AfxGetMainWnd() ;
CFrameWnd* pActiveFrame = pFrameWnd->GetActiveFrame() ;
{
CView* pView = pFrameWnd->GetActiveView() ;
if (pActiveFrame != NULL) {
pView = pActiveFrame->GetActiveView() ;
}
return pView ;
}
return NULL ;
}
クリップボード ビューア
以前まとめたもの.
ClipView.doc
MSDNのドキュメントは,”Creating a Clipboard Viewer Window” で見つかる.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms649016.aspx
mk:@MSITStore:j:\MSDN\ipc.chm::/hh/winbase/clipbrd_47ok.htm
WM_CREATE ビューアとしての登録
NextWnd = ::SetClipboardViewer(hWnd) ;
WM_DESTORY ビューアの登録解除
::ChangeClipboardChain(hWnd,NextWnd) ;
WM_CHANGECBCHAIN 他のビューアが登録解除された
if ((HWND)wParam == NextWnd) { NextWnd = (HWND)lParam ; }
else if (NextWnd != NULL) { ::SendMessage(NextWnd,uMsg,wParam,lParam) ; }
WM_DRAWCLIPBOARD クリップボードの内容が更新された
// 描画または相当の動作
if (NextWnd != NULL) { ::SendMessage(NextWnd,uMsg,wParam,lParam) ; }
Authentication for … failed.
ASUSTOR NAS からのメール.
This is a system event notification sent from AS5202T.
Event Level: WARNING
Date: 2022/08/13 00:00
User: SYSTEM
Event: [Certificate Manager] Authentication for mish.myasustor.com failed.
NAS の ADM に入って「設定」-「証明書管理者」.
「mish.myasustor.com」を選んで「編集」.「証明書を更新」.
何故かうまく更新できない.QNAP NAS の方はうまく更新されている.
回数制限に引っ掛かってしまったので後日.
ポートフォワーディングの設定?
それとも,他ユーザによる myasustor.com での制限?
2022/08/19
回数制限が解除された?みたいで,再度「証明書を更新」.
うまく更新できない.
そのうち,また回数制限に.
ASUSTOR のコミュニティサイトで,同様の投稿があった.
設定を適用できません。 再試行してください。 (Ref. 5401)
ひょっとして,どこかの不具合?
2022/08/23
Let’s Encrypt から次のメールが届いた.
Let’s Encrypt certificate expiration notice for domain “as.mish.work” (and 1 more)
Let’s Encrypt Expiry Bot
Hello,
Your certificate (or certificates) for the names listed below will expire in 17 days (on 10 Sep 22 07:26 +0000). Please make sure to renew your certificate before then, or visitors to your web site will encounter errors.
We recommend renewing certificates automatically when they have a third of their total lifetime left. For Let’s Encrypt’s current 90-day certificates, that means renewing 30 days before expiration. See https://letsencrypt.org/docs/integration-guide/ for details.
as.mish.work
mish.myasustor.com
For details about when we send these emails, please visit: https://letsencrypt.org/docs/expiration-emails/ In particular, note that this reminder email is still sent if you’ve obtained a slightly different certificate by adding or removing names. If you’ve replaced this certificate with a newer one that covers more or fewer names than the list above, you may be able to ignore this message.
For any questions or support, please visit: https://community.letsencrypt.org/ Unfortunately, we can’t provide support by email.
If you are receiving this email in error, unsubscribe at:
http://delivery.letsencrypt.org/track/unsub.php?u=30850198&id=82858f9794a44c0f8e72a5c25c74eb4d.WZdjCQO96%2FOPKKnNcXSSJq4c5Ck%3D&r=https%3A%2F%2Fmandrillapp.com%2Funsub%3Fmd_email%3Di%252A%252A%252A%252A%2540a%252A%252A%252A%252A.%252A%252A%252A
Please note that this would also unsubscribe you from other Let’s Encrypt service notices, including expiration reminders for any other certificates.
Regards,
The Let’s Encrypt Team
2022/08/28
今日も「証明書を更新」が押せるようになったが,また回数制限に.
それで,いろいろと調べていて,LAN 内であれば mish.myasustor.com にアクセスできることは確認した.
WAN から(スマートフォンの回線で現状は IPv4 接続)はアクセスできない.
nslookup で見ると IPv4 のアドレスが表示されない.
先日の ADM のアップデートで IPv6 がサポートされるようになり,その影響か?
一度「設定」-「ネットワーク」-「一般」の「IPv6を有効にする」のチェックを外して,付け直し.
それにより,IPv4 での接続ができるようにはなった.
2022/09/05
IPv4 で外から接続できることを確認して「証明書を更新」してみたが,これでもうまくいかない.
「ポートフォワーディング」を設定して NAS に転送する様にしても特に変わらず.
2022/09/12
今度は「新しい証明書を作成する」でやってみた.
すると「サブジェクトの別名」を指定しなければうまくいく.
「サブジェクトの別名」で「as.mish.work」を指定した場合に,うまくたどり着けない?
別の証明書として,as.mish.work を登録することにした.
CWinApp::m_pszAppName
今更の内容ではあるが…
MFC の SDI や MDI で,アプリケーション名は,作成したプロジェクト名?になる.
ダイアログベースで作成した場合は exe 名になってしまう.
困ることがあるのが exe 名を変更した場合のレジストリキー.
CWinApp::m_pszAppName はヘルプにある様に,AFX_IDS_APP_TITLE がなければ exe 名となる.
コードは MFC 6 のものだが,MFC 14.3 でも同様.
CWinApp::SetRegistryKey で m_pszAppName を利用している.
exe 名と異なるものを使用する場合,リソースの AFX_IDS_APP_TITLE を変更するか,なければ追加すれば良い.
VC 2022 ビルドでエラー
VC 2022 でビルドしようとすると,次の様なエラー.
—————————
Microsoft Visual Studio
—————————
オブジェクト参照がオブジェクト インスタンスに設定されていません。
—————————
OK
—————————
プロジェクトの設定などを見直しても特に怪しい部分はなさそう.
ビルド時に生成される幾つかのファイルを手動で削除しても特に変わらない.
さっきまで動作していた VC 2019 も同様のエラーに.
以前うまく動作しているはずのプロジェクトをコピーして,ビルドしようとしても同様.
こうなると,プロジェクトの設定ではなく,環境っぽい.
PC を再起動してうまく動作する様になった.