namespace NaGet.InteropServices\r
{\r
/// <summary>\r
- /// Win32 API \82Ì<code>CreateProcess</code>\82ð\92¼\82É\92@\82\82½\82ß\82Ì\83N\83\89\83X\81B\r
+ /// Win32 API の<code>CreateProcess</code>を直に叩くためのクラス。\r
/// </summary>\r
/// <remarks>\r
- /// .NET\82ÌProcess.Start\82Í\81A<code>CreateProcess(NULL, cmdLine, ...)</code>\r
- /// \82Ì\82æ\82¤\82É\91æ\88ê\88ø\90\94\82ª<code>NULL</code>\82É\91\8a\93\96\82·\82é\8cÄ\82Ñ\8fo\82µ\82ª\81A\r
- /// *\8cµ\96§\82È\88Ó\96¡*\82Å\82Å\82«\82È\82¢\81B\8cµ\96§\82È\88Ó\96¡\82Å\81A\r
- /// \82±\82ê\82Æ\93¯\82¶\8cÄ\82Ñ\8fo\82µ\82ð\8eÀ\8c»\82·\82é\95K\97v\82ª\82 \82é\82Æ\82«\82É\8eg\82í\82ê\82é\81B\r
+ /// .NETのProcess.Startは、<code>CreateProcess(NULL, cmdLine, ...)</code>\r
+ /// のように第一引数が<code>NULL</code>に相当する呼び出しが、\r
+ /// *厳密な意味*でできない。厳密な意味で、\r
+ /// これと同じ呼び出しを実現する必要があるときに使われる。\r
/// </remarks>\r
public class CreateProcessCaller : IDisposable\r
{\r
PROCESS_INFORMATION pi;\r
\r
/// <summary>\r
- /// \83v\83\8d\83Z\83X\82ð\90¶\90¬\82·\82é\r
+ /// プロセスを生成する\r
/// </summary>\r
- /// <param name="procInfo">\83v\83\8d\83Z\83X\8bN\93®\8fî\95ñ\81B\r
- /// \82È\82¨\81A<code>procInfo.UseShellExecute</code>\82Í\95K\82¸false\82Å\82È\82¯\82ê\82Î\82È\82ç\82È\82¢</param>\r
+ /// <param name="procInfo">プロセス起動情報。\r
+ /// なお、<code>procInfo.UseShellExecute</code>は必ずfalseでなければならない</param>\r
public CreateProcessCaller(ProcessStartInfo procInfo)\r
{\r
if (procInfo.UseShellExecute) {\r
}\r
\r
/// <summary>\r
- /// \8aÖ\98A\95t\82¯\82ç\82ê\82½\83v\83\8d\83Z\83X\82ª\8fI\97¹\82·\82é\82Ü\82Å\81A\8dÅ\91å\8ew\92è\82µ\82½\83~\83\8a\95b\8aÔ\91Ò\8b@\81B \r
+ /// 関連付けられたプロセスが終了するまで、最大指定したミリ秒間待機。 \r
/// </summary>\r
- /// <param name="timeout">\8dÅ\91å\91Ò\8b@\8e\9e\8aÔ(\83~\83\8a\95b\92P\88Ê)</param>\r
- /// <returns>\8fI\97¹\83R\81[\83h</returns>\r
+ /// <param name="timeout">最大待機時間(ミリ秒単位)</param>\r
+ /// <returns>終了コード</returns>\r
public uint WaitForExit(uint timeout)\r
{\r
return WaitForSingleObject(pi.hProcess, timeout);\r
}\r
\r
/// <summary>\r
- /// \8aÖ\98A\95t\82¯\82ç\82ê\82½\83v\83\8d\83Z\83X\82ª\8fI\97¹\82·\82é\82Ü\82Å\96³\8aú\8cÀ\82É\91Ò\8b@\81B\r
+ /// 関連付けられたプロセスが終了するまで無期限に待機。\r
/// </summary>\r
- /// <returns>\8fI\97¹\83R\81[\83h</returns>\r
+ /// <returns>終了コード</returns>\r
public uint WaitForExit()\r
{\r
// return WaitForExit(INFINITE)\r
}\r
\r
/// <summary>\r
- /// \8fI\97¹\83R\81[\83h\r
+ /// 終了コード\r
/// </summary>\r
public int ExitCode {\r
get {\r
}\r
\r
/// <summary>\r
- /// \83v\83\8d\83Z\83X\82Ì\83n\83\93\83h\83\8b\82ð\8aJ\95ú\82·\82é\r
+ /// プロセスのハンドルを開放する\r
/// </summary>\r
public void Dispose()\r
{\r
namespace NaGet.InteropServices\r
{ \r
/// <summary>\r
- /// ShellLink\82Ì\8dX\90V\83t\83\89\83O\r
+ /// ShellLinkの更新フラグ\r
/// </summary>\r
[Flags]\r
public enum ShellLinkResolve : uint\r
{\r
- // AnyMatch = 0x02, // winMe,win2k\88È\8d~\96³\8cø\r
+ // AnyMatch = 0x02, // winMe,win2k以降無効\r
\r
/// <summary>\r
- /// MSI\82ð\8cÄ\82Ô\r
+ /// MSIを呼ぶ\r
/// </summary>\r
InvokeMSI = 0x80,\r
/// <summary>\r
- /// \92Ç\90Õ\8bÖ\8e~\r
+ /// 追跡禁止\r
/// </summary>\r
NoLinkInfo = 0x40,\r
/// <summary>\r
- /// \83\8a\83\93\83N\90æ\82Ì\89ð\8c\88\82ª\82Å\82«\82È\82¢\82Æ\82«\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82µ\82È\82¢\r
+ /// リンク先の解決ができないときダイアログを表示しない\r
/// </summary>\r
NoUi = 0x01,\r
NoUiWithMsgPump = 0x101,\r
/// <summary>\r
- /// \83\8a\83\93\83N\90æ\82Ì\83f\81[\83^\8dX\90V\82ð\8ds\82í\82È\82¢\r
+ /// リンク先のデータ更新を行わない\r
/// </summary>\r
NoUpdate = 0x07,\r
/// <summary>\r
- /// \8c\9f\8dõ\82ð\82µ\82È\82¢\r
+ /// 検索をしない\r
/// </summary>\r
NoSearch = 0x10,\r
NoTrack = 0x20,\r
/// <summary>\r
- /// \83\8a\83\93\83N\90æ\82ð\8dX\90V\82·\82é\r
+ /// リンク先を更新する\r
/// </summary>\r
Update = 0x04,\r
}\r
}\r
\r
/// <summary>\r
- /// \83V\83F\83\8b\83\8a\83\93\83N(\83V\83\87\81[\83g\83J\83b\83g)\82Ì\83J\83v\83Z\83\8b\83N\83\89\83X\r
+ /// シェルリンク(ショートカット)のカプセルクラス\r
/// </summary>\r
public class ShellLink : IDisposable\r
{\r
/// <summary>\r
- /// \83V\83F\83\8b\83\8a\83\93\83N\82ÌCOM\83I\83u\83W\83F\83N\83g\r
+ /// シェルリンクのCOMオブジェクト\r
/// </summary>\r
protected IShellLinkW shellLink;\r
\r
/// <summary>\r
- /// \83V\83F\83\8b\83\8a\83\93\83N\82ÌGUID\r
+ /// シェルリンクのGUID\r
/// </summary>\r
public const string ShellLinkGuid = "00021401-0000-0000-C000-000000000046";\r
\r
}\r
\r
/// <summary>\r
- /// \83V\83F\83\8b\83\8a\83\93\83N\82Ì\89ð\90Í\89ð\8c\88\r
+ /// シェルリンクの解析解決\r
/// </summary>\r
- /// <param name="hWnd">\90e\83t\83\8c\81[\83\80\82Ì\83n\83\93\83h\83\8b</param>\r
- /// <param name="fFlags">\95û\96@</param>\r
+ /// <param name="hWnd">親フレームのハンドル</param>\r
+ /// <param name="fFlags">方法</param>\r
public void Resolve(IntPtr? hWnd, ShellLinkResolve fFlags)\r
{\r
shellLink.Resolve(hWnd ?? IntPtr.Zero, fFlags);\r
}\r
\r
/// <summary>\r
- /// IPersistFile\82Æ\82µ\82Ä\8eæ\82è\8fo\82·\r
+ /// IPersistFileとして取り出す\r
/// </summary>\r
- /// <returns>IPersistFile\82É\83L\83\83\83X\83g\82³\82ê\82½COM\83I\83u\83W\83F\83N\83g</returns>\r
+ /// <returns>IPersistFileにキャストされたCOMオブジェクト</returns>\r
public IPersistFile ToPersistFile()\r
{\r
return (IPersistFile) shellLink;\r
}\r
\r
/// <summary>\r
- /// \83\8a\83\93\83N\90æ\83p\83X\82ð\93¾\82é\81B\83R\83}\83\93\83h\83\89\83C\83\93\82ð\93¾\82é\82½\82ß\82É\82à\r
+ /// リンク先パスを得る。コマンドラインを得るためにも\r
/// </summary>\r
- /// <param name="fFlags">\83p\83X\82Ì\83^\83C\83v(1:8.3\8c`\8e®; 2:UNC\83p\83X; 4:\8aÂ\8b«\95Ï\90\94\95Ï\8a·\82È\82µ)</param>\r
- /// <returns>\83p\83X</returns>\r
+ /// <param name="fFlags">パスのタイプ(1:8.3形式; 2:UNCパス; 4:環境変数変換なし)</param>\r
+ /// <returns>パス</returns>\r
public string GetPath(uint fFlags)\r
{\r
StringBuilder sb = new StringBuilder(MAX_PATH);\r
}\r
\r
/// <summary>\r
- /// \83\8a\83\93\83N\90æ\83p\83X(\8eæ\93¾\8e\9e\82É\82Í\8aÂ\8b«\95Ï\90\94\82Í\93W\8aJ\82³\82ê\82Ü\82¹\82ñ)\r
+ /// リンク先パス(取得時には環境変数は展開されません)\r
/// </summary>\r
public string Path {\r
get { return GetPath(0x04); }\r
}\r
\r
/// <summary>\r
- /// \83\8a\83\93\83N\90æ(\88ø\90\94)\r
+ /// リンク先(引数)\r
/// </summary>\r
public string Arguments {\r
get {\r
}\r
\r
/// <summary>\r
- /// \8dì\8bÆ\83t\83H\83\8b\83_\r
+ /// 作業フォルダ\r
/// </summary>\r
public string WorkingDirectory {\r
get {\r
}\r
\r
/// <summary>\r
- /// \83E\83B\83\93\83h\83E\83X\83^\83C\83\8b(ShowCmd\82Ì\83\8f\83b\83p)\r
+ /// ウィンドウスタイル(ShowCmdのワッパ)\r
/// </summary>\r
public ProcessWindowStyle WindowStyle\r
{\r
}\r
\r
/// <summary>\r
- /// \83A\83C\83R\83\93\82Ì\8fê\8f\8a\82ð\93¾\82é\r
+ /// アイコンの場所を得る\r
/// </summary>\r
- /// <param name="iconPath">\83A\83C\83R\83\93\82ð\8aÜ\82Þ\83t\83@\83C\83\8b\83p\83X</param>\r
- /// <param name="iconIndex">\83A\83C\83R\83\93\82Ì\83C\83\93\83f\83b\83N\83X</param>\r
+ /// <param name="iconPath">アイコンを含むファイルパス</param>\r
+ /// <param name="iconIndex">アイコンのインデックス</param>\r
public void GetIconLocation(out string iconPath, out int iconIndex)\r
{\r
StringBuilder sb = new StringBuilder(MAX_PATH);\r
}\r
\r
/// <summary>\r
- /// \83A\83C\83R\83\93\82Ì\8fê\8f\8a\82ð\90Ý\92è\82·\82é\r
+ /// アイコンの場所を設定する\r
/// </summary>\r
- /// <param name="iconPath">\83A\83C\83R\83\93\82ð\8aÜ\82Þ\83t\83@\83C\83\8b\83p\83X</param>\r
- /// <param name="iconIndex">\83A\83C\83R\83\93\82Ì\83C\83\93\83f\83b\83N\83X</param>\r
+ /// <param name="iconPath">アイコンを含むファイルパス</param>\r
+ /// <param name="iconIndex">アイコンのインデックス</param>\r
public void SetIconLocation(string iconPath, int iconIndex)\r
{\r
shellLink.SetIconLocation(iconPath, iconIndex);\r
}\r
\r
/// <summary>\r
- /// COM\83I\83u\83W\83F\83N\83g\82Ì\8aJ\95ú\r
+ /// COMオブジェクトの開放\r
/// </summary>\r
public void Dispose()\r
{\r
}\r
\r
/// <summary>\r
- /// \83V\83F\83\8b\83\8a\83\93\83N\82Ì\92\86\90g\82ð\83v\83\8d\83Z\83X\8fî\95ñ\82Æ\82µ\82Ä\8eæ\93¾\82·\82é\81B\8bN\93®\82Ì\8dÛ\82É\97\98\97p\r
+ /// シェルリンクの中身をプロセス情報として取得する。起動の際に利用\r
/// </summary>\r
- /// <returns>\83v\83\8d\83Z\83X\8bN\93®\8fî\95ñ\89»\82³\82ê\82½\83V\83F\83\8b\83\8a\83\93\83N\82Ì\8fî\95ñ</returns>\r
+ /// <returns>プロセス起動情報化されたシェルリンクの情報</returns>\r
public ProcessStartInfo ToProcessStartInfo()\r
{\r
ProcessStartInfo procInfo = new ProcessStartInfo();\r
}\r
\r
/// <summary>\r
- /// \83v\83\8d\83Z\83X\8fî\95ñ\82©\82ç\83V\83F\83\8b\83\8a\83\93\83N\83I\83u\83W\83F\83N\83g\82ð\90¶\90¬\r
+ /// プロセス情報からシェルリンクオブジェクトを生成\r
/// </summary>\r
- /// <param name="procInfo">\83v\83\8d\83Z\83X\8fî\95ñ</param>\r
- /// <returns>\90¶\90¬\82³\82ê\82½\83V\83F\83\8b\83\8a\83\93\83N\83I\83u\83W\83F\83N\83g</returns>\r
+ /// <param name="procInfo">プロセス情報</param>\r
+ /// <returns>生成されたシェルリンクオブジェクト</returns>\r
public static ShellLink CreateFromProcessStartInfo(ProcessStartInfo procInfo)\r
{\r
ShellLink shelllink = new ShellLink();\r