if GetEnvironment(lenv_Env) = 1 then
choose case lenv_Env.OSType
case WindowsNT!
if RegistryGet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows","Device", ls_DefaultPrinter) = -1 then
SetNull(ls_DefaultPrinter)
end if
case Windows!
ls_DefaultPrinter = ProfileString(of_GetWinINI(), "Windows", "Device", "error")
if ls_DefaultPrinter = "error" then SetNull(ls_DefaultPrinter)
end choose
else
SetNull(ls_DefaultPrinter)
end if
return ls_DefaultPrinter
2.of_getwinini
ulong lu_Buf
string ls_WinDir
lu_Buf = 144
ls_WinDir = Space(144)
GetWindowsDirectoryA(ls_WinDir, lu_Buf)
return ls_WinDir + "\win.ini"
3.of_setdefaultprinter
Environment lenv_Env
string ls_Buffer
// make changes
if GetEnvironment(lenv_Env) = 1 then
choose case lenv_Env.OSType
case WindowsNT!
// check if given printer is valid
if RegistryGet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices", &
as_DefaultPrinter, ls_Buffer) <> 1 then return -2
// check for needed changes
if (as_DefaultPrinter + "," + ls_Buffer) = of_GetDefaultPrinter() then return 0
// set it in registry
ls_Buffer = ProfileString(of_GetWinINI(), "Devices", as_DefaultPrinter, "error")
if ls_Buffer = "error" then return -2
if (as_DefaultPrinter + "," + ls_Buffer) = of_GetDefaultPrinter() then return 0
if SetProfileString(of_GetWinINI(), "Windows", "Device", as_DefaultPrinter + "," + ls_Buffer) <> 1 then
return -1
end if
end choose
else
return -1
end if
return 1