ホーム » Windows (ページ 12)

Windows」カテゴリーアーカイブ

2025年5月
 123
45678910
11121314151617
18192021222324
25262728293031

カテゴリー

アーカイブ

ブログ統計情報

  • 113,706 アクセス


MAPI の MapiFileDesc の配列

MFC を使用している方法では,

    LateDelete	ld ;    //  MultiByte の必要があるようなので,UNICODE の時のバッファをここに登録
    //	添付ファイルの準備
    CArray<MapiFileDesc,MapiFileDesc>	fileDescA ;
    int	fileCount = 0 ;
    int	index = 0 ;
    for (index=0 ; index<PathNames.GetSize() ; index++) {
        CString	    pathName = PathNames[index] ;
        if (::FileIsNothing  (pathName))	{	continue ;	}
        if (::FileIsDirectory(pathName))	{	continue ;	}
        MapiFileDesc	fileDesc ;
        memset(&fileDesc,0,sizeof(MapiFileDesc)) ;
        fileDesc.nPosition		= (ULONG)-1 ;
    #ifdef	_UNICODE
        fileDesc.lpszPathName	= SendMail__ChangeMultiByte(PathNames[index],&ld) ;
        fileDesc.lpszFileName	= SendMail__ChangeMultiByte(FileNames[index],&ld) ;
    #else
        fileDesc.lpszPathName	= LPSTR(LPCTSTR(PathNames[index])) ;
        fileDesc.lpszFileName	= LPSTR(LPCTSTR(FileNames[index])) ;
    #endif
        fileDescA.Add(fileDesc) ;
        fileCount++ ;
        }

MFC を使用しないコードは,

    std::vector<MapiFileDesc>	fileDescA ;
    std::vector<std::string>	pathNameA ;
    std::vector<std::string>	fileNameA ;
    int	index = 0 ;
    {
        for (index=0 ; index<PathNames.GetSize() ; index++) {
            {
                tstring	pathName = PathNames[index] ;
                if (::File_IsNothing  (pathName))	{	continue ;	}
                if (::File_IsDirectory(pathName))	{	continue ;	}
                }
            std::string	pathName= ::To__string(PathNames[index]) ;
            std::string	fileName= ::To__string(FileNames[index]) ;
            pathNameA.push_back(pathName) ;
            fileNameA.push_back(fileName) ;
            }
        {
            for (size_t index=0 ; index<pathNameA.size()&&index<fileNameA.size() ; index++) {
                MapiFileDesc	fileDesc ;
                memset(&fileDesc,0,sizeof(MapiFileDesc)) ;
                fileDesc.nPosition	= (ULONG)-1 ;
                fileDesc.lpszPathName	= &(pathNameA[index])[0] ;
                fileDesc.lpszFileName	= &(fileNameA[index])[0] ;
                fileDescA.push_back(fileDesc) ;
                }
            }
        }

詳しくは見てないが,幾つかの方法が書かれていたので
Sending Email with MAPI


MapiRecipDesc.lpszAddress の “smtp:”
以前コードを直したのが 2002/4 であまり情報がなかった様に思う.
個人的に書いた内容が「Outlook で配信不能になる
参考になりそうな所
Email mit Dateien perWinAPI versenden??
MAPISendMail
MSDN MapiRecipDesc structure
Sending email using MAPI causes error on ‘ResolveName’ function in Window7


MAPI を使用した複数ファイルの送信
S_Mail.hxx

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

T5400 Windows アップデートで…

T5400 が Windows アップデートで,起動しなくなってしまった.
再起動後,




リセットがかかる.


セーフモードで起動すると自動的に,

その後勝手に再起動して,

この状態で今 2 時間近く.


その後しばらくして,やっと起動できた.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

XP 環境で OpenGL での表示が…

WinXP 環境で OpenGL での表示が変になっている.

スムージングを無効にしていると正しく表示される.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Win10 1709 その後

内臓のディスク容量が少ないので,「ジャンクション」を利用して D にしていた.

C:\Users\Public\Documents>dir /a
 ドライブ C のボリューム ラベルは OS です
 ボリューム シリアル番号は 9899-964A です
 C:\Users\Public\Documents のディレクトリ
2018/01/21  13:56    <DIR>          .
2018/01/21  13:56    <DIR>          ..
2016/02/11  01:29    <JUNCTION>     Asus [C:\Public\Document\Asus]
2017/09/29  20:52               278 desktop.ini
2016/02/11  01:49    <JUNCTION>     Dropbox [C:\Public\Document\Dropbox]
2016/12/22  11:01    <DIR>          images
2016/02/11  01:27    <JUNCTION>     M... [C:\Public\Document\M...]
2016/02/11  01:16    <JUNCTION>     M... [C:\Public\Document\M...]
2015/07/10  18:55    <JUNCTION>     My Music [C:\Users\Public\Music]
2015/07/10  18:55    <JUNCTION>     My Pictures [C:\Users\Public\Pictures]
2015/07/10  18:55    <JUNCTION>     My Videos [C:\Users\Public\Videos]
2018/01/21  14:20    <DIR>          Temp
2016/02/11  01:26    <JUNCTION>     Tools [C:\Public\Document\Tools]
2016/02/20  16:28                 0 VC_Path.BAK
2016/02/20  16:31             2,563 VC_Path.txt
2016/12/21  23:45               168 web.config
2017/02/17  22:12    <DIR>          w_Conf
               4 個のファイル               3,009 バイト
              13 個のディレクトリ   3,028,328,448 バイトの空き領域

* 一部ディレクトリ名などは編集済み.
JUNCTION という情報は残っているようではあるが,D ドライブを正しく指していない.
確か,1607 でも一部(%Temp% 直下のジャンクション)がうまく引き継がれなかった.
ここが引き継げないのはわからなくもないが,Public\Documents 以下は何とかできないものか?

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Win10 1709

T90Chi を使っていたら,1709 のアップデートの表示が出てきた.
特にその後にすることもなかったので,「更新して再起動」に.
予想はしていたがかなり時間がかかりそう.

結局,2 時間半くらいかかった.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

WSR-300HP 追加

先日,WLI-UC-AG300N を追加し「ワイヤレス ルーター」として設定したが,
 ちょっと不安定なのと,そこからは外を覗かない様にしたかったのであまり使えないでいた.
 どちらかと言うと,独立した AP として利用していた感じ.


「ホテルルーター」が良いかとも思ったが,発熱の問題や,長時間だと不安定になることがあるなどとあった.
いろいろ考え,やはり独立した「ルーター」が良さそうと思い量販店へ.
「安価なルーター」で「Wi-Fi や GIGA ビットはあればなお良い」と言うことで探してもらった.
それですすめてもらったのが WSR-300HP .価格的にも予定範囲内.


接続などは特に困ることもなく LAN 内は独立して意図した動作となった.
が,T5400 で「インターネット」接続が不安定なことは残っていた(前回あまり調べてなかった).
どうも「デフォルトゲートウェイ」の設定がよくなかったみたいで,追加した側の IP を固定に.


2017/07/11
固定 IP にすることだと,本来 DHCP サーバを使いたかったのでこのルーターを追加する意味が半減する.
さらに調べてみると,
  Windows 7 でネットワーク接続の優先順位を変更する方法

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

T5400 が…

離れていて戻ってくると T5400 が,

DSC_0192

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

B65/R 追加

dynabook B65/R 追加.
はじめに.pdf にある通り,次の作業.
 リカバリーメディアの作成.
 PC 引越ナビ.


Win 10 のメディアは付属していたが,Win 7 が入っている状態.
セットアップで 32 / 64 ビットの選択があり,
 メモリが 4 G なので 32 を選択.
DVD-ROM ドライブのため,BRD-UT16WX を接続して作成.
DVR-R 4.7G メディアは 4 枚で,作成時間は 1 時間程度.
よく知らなかったが,
 DVD-ROM ドライブでも DVD-R のメディアは読めるみたい.


旧 PC は TXE/68HE で,USB メモリと LAN ケーブルを使う方法で.
USB メモリは空きが 50 MB 程度のものを利用.
LAN は旧 PC の制限で 100 M bps みたい.
転送されたデータは 100 G 程度で,6 時間位かかった.


その後 Web に接続して,MSSE をインストール.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

高 DPI

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

KB3035583

GWX は何度も更新されていた.

対応方法が公開されたようではあるが,今の所見つけたのは「アップグレード開始後」の「キャンセル」.
このタイミングでは遅いと思うが…

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Win 10 10586 3D Builder

3MF 形式ではいたデータが,10586 にしてから開けないでいた.エラー : 0x80004005
model タグに,xmlns 属性が必要になった?
 <model unit= "millimeter " xmlns="http://schemas.microsoft.com/3dmanufacturing/core/2015/02 " >

ply だと,

3MF でのテクスチャは未だ.


2016/05/02 テクスチャなどの大文字,小文字も区別される?また,path も / から正しく指定する必要がある.
テクスチャの場合,colorid の指定が object の属性では効果がなくなった?
  triangle 内での指定が必要?


To3MF_1603.3mf
To3MF_1605.3mf
i_Tools i_S_asZ

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Win 10 10586

ドロップダウン付のツールバーで,ボタンが切れる現象は直った?
VS 2005 で作成した「Web セットアップ プロジェクト」のインストールはまだできない?


2015/12/10
ドロップダウン付のツールバーのサイズが正しくない現象が XP でも発生.
初期の Win 10 で現象が発生しやすかったことは確かだが,もっと他にも条件がありそう.
  MFC 8 やフラットかどうかなど.
XP で発生した時,MFC 6 の exe は問題なかった.
いつも使用している環境では,フラットにしていないことが多い.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Shell Extension のデバッグ

Shell Extension で,縮小版の背景に GDI+ を使用して,どうも動作が安定しなくなった.
現象としては,環境によるが explorer.exe が「応答なし」に.
  GDI+ の GdiplusShutdown の呼び方が悪かったみたいで,DllCanUnloadNow で終わらせる様にした.
また,今回デバッグ用にダンプする様にしていて,そのファイルをエクスプローラで選択しようとするとフリーズ.
  これは,デフォルトでは出力しないことで回避.


今回これらをやっていて,以前から面倒と思っていた ShellExt.dll のデバッグ.
デバッグ版.dll が呼ばれる様に設定して,普通の exe で「開く」ダイアログで dll 内をデバッグできる.


Vector
https://jml.mish.work/i-tools.html

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

フォルダ以下の同期

先日追加した WD Cloud にソースなどをバックアップしたいと思い探していたら,robocopy.exe を見つけた.
まだ,単純にバックアップをとっているだけ.
  robocopy \\DevXP\C_Drive\Temp\ \\WDCloud\Backup\Develop\DevXP\Temp\ /mir
UNICODE のフォルダやファイル名も,コピー中の表示は ‘?’ となるが問題なさそう.


GUI 版の RichCopy があるみたいだが,こっちはまだ未確認.
FTP もいける?


robocopy 補助ツール
robocopy 補助ツール

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

うまく起動しない…

「知人から譲り受けた Win 7 のノート PC の起動が遅い」と言うことで調べてみると,
確かに,起動時のロゴが出て HDD のランプが点きっぱなし,1 時間程そのままにしておいたら起動していた.
怪しいのは HDD .
イベントビューアで確認しようとしたが,起動はするがデータが開けない.
ChkDsk で修復すると,

起動は通常の時間になったと思うが,動作が安定しない.


リカバリメディアの作成
  PCG-71712N で実際必要だったメディア数は DVD で 5 枚,DL で 2 枚となっていた.
  VPCCB38FJ が正しいモデル名?
ずっと PC についてはいなかったが,それぞれ 20 ~ 30 分程度.
  4 枚目が少しかかっていたように思う.HDD の不良セクタの影響?


先ず,リカバリ領域からのリカバリ.2 時間程度.
ちょっと拝借,AP をインストールして今日ビルドした exe をテスト.


今度はリカバリメディアの DVD から
  読込?に 1 時間程度(ディスク 5 枚).
  さらに 2 時間弱.


Window Update で,170 個程を 6 時間位.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Windows Update 2015.10

「シャットダウン」に黄色い「盾」のマークがあったので,
  「コントロール パネル」-「Windows Update」を見ると,

この環境では予約した記憶もないのに…

この項目のチェックを外して,「非表示」に.
これで対応できれていば良いが,8 から 8.1 に強制的にアップされたこともあったので…


この件とは直接関係ないと思いたいが,
  PC の調子が悪いと感じたのは,これもあったのか?

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

VC 10 でビルドした exe を XP で…

以前から VC10 以降でビルドした exe が Win XP 環境で起動できてなかった(ビルド環境の Win 7 では OK).


—————————
M—.exe – エントリ ポイントが見つかりません
—————————
プロシージャ エントリ ポイント K32GetProcessMemoryInfo がダイナミック リンク ライブラリ KERNEL32.dll から見つかりませんでした。
—————————
OK
—————————

日本語化された GetProcessMemoryInfo には書かれてないが,
こちら (GetProcessMemoryInfo function) には,Win 7 以降変わっているような記述がある.


対応としては App.h(アプリケーションクラスのヘッダファイル)に以下を追加した.
  #ifndef PSAPI_VERSION
    #define PSAPI_VERSION 1
    #pragma comment (lib, “PSAPI.Lib”)
  #else
    #pragma message (“defined PSAPI_VERSION *************”)
  #endif

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

ファイル数

あるフォルダに,ユーザが作成した 3D データを,自動でファイル名を振って保存する様にしている.
但しファイル名の一部はユーザ指定.
ロジック上は,36^4 で 1,679,616 管理できるはず.
これがいっぱいになったと言われて…
  通常の運用であれば,1 日に 100 個はかなりきつい.
  それでも 16,000 日かかる.
そんなことがあり,ファイル名の空きを検出するツールを作成中.


かなり前の事だが,iRMX の FD のフォーマット?で,指定しないと 200 個位がデフォルトだったと記憶している.
NTFS ではその様なことはないと思ってたが,はっきりした情報があったのでメモ.
TechNet – ファイル システム

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

クリップボードに…

オフスクリーンにレンダリングしたものをクリップボードにコピーしていて,
  5000x5000x4 バイトの CF_BITMAP がうまく動作しない.
原因は Office クリップボードの制限みたいで 8 M まで.
  Office クリップボードにアイテムを追加できない場合の確認事項
無効にして対応.


よくわからないが,以下の様にした.
  CF_METAFILEPICT StretchDIBits
  CF_BITMAP     AlphaBlend
AlphaBlend function (Windows) – TechNet – Microsoft に,
  An error occurs (…) if the source device context identifies an enhanced metafile device context.
コピー画像は,


いろいろやっていて,一度 EMF に吐いて
 ::GetEnhMetaFile(…) で返される HENHMETAFILE を CF_ENHMETAFILE で意図した動作となった.
  {
    CString tmpPath = ::GetTempPath() ;
    tmpPath = CString(::Path_AddLastSP(tmpPath).c_str()) + _T(“Debug.tmp”) ;
    tmpPath = CString(::Path_AddLastSP(tmpPath).c_str()) + ::GetFileTitle(::GetModuleFileName()) ;
    CString nowStr = CTime::GetCurrentTime().Format(_T(“%d%H%M%S”)) ;
    CString tmpName = CString(::Path_AddLastSP(tmpPath).c_str()) + nowStr + _T(“.emf”) ;
    ::CreateFolder(tmpPath) ;
    ::ToEMF(dib,tmpName) ;
    HENHMETAFILE hMetaFile = ::GetEnhMetaFile(tmpName) ;
    return hMetaFile ;
    }
    …
   ::SetClipboardData(CF_ENHMETAFILE, hGMemEnhM) ;
i_DIB_x.hxx
i_DIB_Fn.hxx
i_dib.hxx


今度はメモリメタファイル(第 2 引数を NULL)にして,
  {
    CMetaFileDC mf_DC ;
    BOOL ret = mf_DC.CreateEnhanced(NULL,NULL,NULL,NULL) ;
    ::AlphaBlend (mf_DC.GetSafeHdc(),dRect,dib) ;
    HENHMETAFILE hEnhMetaF = mf_DC.CloseEnhanced() ;
    return hEnhMetaF ;
    }
  CreateEnhanced の幾つかの引数が NULL は知らなかった.
  CreateEnhMetaFile
  Programming Windows 5 18.2.2
  Programming Windows 5


XP 環境のクリップブックや,Word 2003 などでの CF_METAFILEPICT がうまくない.

  {
    CMetaFileDC mf_DC ;
    BOOL ret = mf_DC.Create() ;
    ::StretchDIBits (mf_DC.GetSafeHdc(),dRect,dib) ;
    HMETAFILE hMetaFile = mf_DC.Close() ;
    hGMemMeta = ::GlobalAlloc( GHND, (DWORD) sizeof(METAFILEPICT)) ;
    {
      LPMETAFILEPICT lpMFP = (LPMETAFILEPICT)GlobalLock(hGMemMeta) ;
      lpMFP->mm = MM_TEXT ;
      lpMFP->xExt = dRect.right ;
      lpMFP->yExt = dRect.bottom ;
      lpMFP->hMF = hMetaFile ;
      }
    ::GlobalUnlock(hGMemMeta) ;
    return hGMemMeta ;
    }
StretchDIBits とした.


i_ToDIB

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Win 10 TP

Win 10 TP JP 9926 を入れてみた.
詳しく調べてないが,幾つか気になったことを.
VerifyVersionInfo で取る様に直したと思うが,6.2 として認識している?
ウィンドウのフレームの幅が広い?

ドロップダウン付きのツールバー?で,後ろのボタンが切れてしまうことがある.
Web に上げた exe だと?

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.