Its a great solution if you want to enumerate the printers and display it the the user. If you simply just want to change default printers than all you need is this:
VB Code:
  1. Option Explicit
  2. Private Declare Function SetDefaultPrinter Lib "winspool.drv" _
  3.    Alias "SetDefaultPrinterA" _
  4.   (ByVal pszPrinter As String) As Long
  5.  
  6. Private Sub Command1_Click()
  7.    SetDefaultPrinter "PrinterNameHere"
  8. End Sub