// ==================================================================================================== // // ==================================================================================================== public static bool SatoOpen(ref IntPtr Handle, string PrintName, string DocumentName, ref string ErrMsg) { bool SatoOpenFLG = false; try { typDocInfo sDocInfo = new typDocInfo(); Int32 Level = 1; // プリンタハンドルを取得します if (!OpenPrinter(PrintName, ref Handle, IntPtr.Zero)) { ErrMsg = "プリンタハンドルの取得に失敗しました。"; return(SatoOpenFLG); } // 印刷ジョブの設定 sDocInfo.strDocName = DocumentName; sDocInfo.strOutputFile = null; sDocInfo.strDatatype = null; // 印刷のために文書がスプールされたことを印刷スプーラに通知します if (!StartDocPrinter(Handle, Level, sDocInfo)) { ErrMsg = "スプーラの通知に失敗しました。"; return(SatoOpenFLG); } SatoOpenFLG = true; } catch (Exception e) { // ==================================================================================================== // エラーが発生した場合にエラー時の処理を記述します // ==================================================================================================== ErrMsg = e.Message; } // 戻り値の設定 return(SatoOpenFLG); }
private static extern bool StartDocPrinter(IntPtr hPrinter, Int32 level, [In, MarshalAs(UnmanagedType.LPStruct)] typDocInfo di);