petermeachem
Programmer
I'm told by my customer that me using version 6 of the common dialog ocx has stopped some other programme of theirs from working, which uses version 5. Apparently the german authors cant see any way they could have made an error, so I've recoded using api instead of ocx.
This was OK until it got to making the selected printer the default. I found this huge wadge of code at Microsoft :-
FIX: Setting Printer to Item in the Printers Collection Fails
Last reviewed: July 3, 1998
Article ID: Q167735
It worked on NT, but not on Win98. I bodged the following section of code so that it did work. Can anyone explain the if's here. What numbers come up for various OS's and what happens on win2000, cos I haven't got that.
Dim osinfo As OSVERSIONINFO
Dim retvalue As Integer
osinfo.dwOSVersionInfoSize = 148
osinfo.szCSDVersion = Space$(128)
retvalue = GetVersionExA(osinfo)
If osinfo.dwMajorVersion = 3 And osinfo.dwMinorVersion = 51 And _
osinfo.dwBuildNumber = 1057 And osinfo.dwPlatformId = 2 Then
Call WinNTSetDefaultPrinter
ElseIf osinfo.dwMajorVersion = 4 And osinfo.dwMinorVersion = 0 _
And osinfo.dwBuildNumber = 67109814 And osinfo.dwPlatformId = 1 _
Then
Call Win95SetDefaultPrinter
ElseIf osinfo.dwMajorVersion = 4 And osinfo.dwMinorVersion = 0 _
And osinfo.dwBuildNumber = 1381 And osinfo.dwPlatformId = 2 Then
Call WinNTSetDefaultPrinter
End If
End Sub
This was OK until it got to making the selected printer the default. I found this huge wadge of code at Microsoft :-
FIX: Setting Printer to Item in the Printers Collection Fails
Last reviewed: July 3, 1998
Article ID: Q167735
It worked on NT, but not on Win98. I bodged the following section of code so that it did work. Can anyone explain the if's here. What numbers come up for various OS's and what happens on win2000, cos I haven't got that.
Dim osinfo As OSVERSIONINFO
Dim retvalue As Integer
osinfo.dwOSVersionInfoSize = 148
osinfo.szCSDVersion = Space$(128)
retvalue = GetVersionExA(osinfo)
If osinfo.dwMajorVersion = 3 And osinfo.dwMinorVersion = 51 And _
osinfo.dwBuildNumber = 1057 And osinfo.dwPlatformId = 2 Then
Call WinNTSetDefaultPrinter
ElseIf osinfo.dwMajorVersion = 4 And osinfo.dwMinorVersion = 0 _
And osinfo.dwBuildNumber = 67109814 And osinfo.dwPlatformId = 1 _
Then
Call Win95SetDefaultPrinter
ElseIf osinfo.dwMajorVersion = 4 And osinfo.dwMinorVersion = 0 _
And osinfo.dwBuildNumber = 1381 And osinfo.dwPlatformId = 2 Then
Call WinNTSetDefaultPrinter
End If
End Sub