プリンターの管理
シェル API には、ネットワークプリンターの管理に使用できる関数が用意されています。 ファイルに 印刷 動詞が関連付けられている場合は、 ShellExecuteEx コマンドを使用して印刷できます。
プリンター管理
SHInvokePrinterCommand 関数を使用して、システム上のプリンターを管理できます。 この関数を使用すると、次のことができます。
- プリンターをインストールします。
- プリンターを開きます。
- プリンターのプロパティを取得します。
- プリンター リンクを作成します。
- テスト ページを印刷します。
ShellExecuteEx を使用したファイルの印刷
ファイルの種類に印刷コマンドが関連付けられている場合は、動詞として print を指定して ShellExecuteEx を呼び出してファイルを 印刷 できます。 このコマンドは、多くの場合、 開いている 動詞に使用されるコマンドと同じで、ファイルを印刷するようにアプリケーションに指示するフラグが追加されています。 たとえば、.txtファイルは Microsoft WordPad で印刷できます。 したがって、.txt ファイルの オープン 動詞は、次のコマンドに対応します。
"C:\Program Files\Windows NT\Accessories\Wordpad.exe" /p "%1"
ShellExecuteEx を使用して.txt ファイルを印刷すると、WordPad によってファイルが開き、印刷されてから閉じられ、コントロールがアプリケーションに返されます。 次のサンプル関数は完全修飾パスを受け取り、 ShellExecuteEx を使用してファイル名拡張子に関連付けられた print コマンドを使用して印刷します。
#include <shlobj.h>
HINSTANCE PrintFile(LPCTSTR pszFileName)
{
SHELLEXECUTEINFO ShExecInfo;
HINSTANCE hInst;
// Fill the SHELLEXECUTEINFO array.
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = NULL;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = "print";
ShExecInfo.lpFile = pszFileName; // a fully qualified path
ShExecInfo.lpParameters = NULL;
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_MAXIMIZE;
ShExecInfo.hInstApp = NULL;
hInst = ShellExecuteEx(&ShExecInfo);
return hInst;
}