「プログラミングWindows 第5版(上) Charls Petzold著」のp.652,653に、
「WindowsNTでデフォルトプリンタのデバイスコンテキストを取得する方法」として、
下のようなコードがあります。

PRINTER_INFO_4 *pinfo4;
EnumPrinters(PRINTER_ENUM_LOCAL,NULL,4,(PBYTE)pinfo4,dwNeeded,&dwNeeded,&dwReturned);
hdc = CreateDC(NULL,pinfo4->pPrinterName,NULL,NULL);
(省略あり)

この場合、デフォルトプリンタの設定を変えた直後など、
うまくデフォルトプリンタが拾えないないことがあるんですが、
このコードは間違いですか?
「EnumPrinter()で取得した配列の先頭はデフォルトプリンタである」
という仕様は特にないですよね?