SHOpenWithDialog Function mit PB
Verfasst: 29.05.2015 02:32
Moin,
Da ich nicht das Standard Context Menu von Windows nutze aber nur den 'Öffne mit' Dialog benötige und SHOpenWithDialog_() so nicht unter PB aufrufen lässt
habe ich das mal so gemacht
Hoffe das ist richtig 'Konvertiert' habe. Bin noch nicht so bewandert mi PB
aber Funktioniert
Source: https://msdn.microsoft.com/de-de/librar ... 85%29.aspx
Source: https://msdn.microsoft.com/de-de/librar ... 85%29.aspx
__________________________________________________
MSDN-Links angepasst
29.05.2015
RSBasic
Da ich nicht das Standard Context Menu von Windows nutze aber nur den 'Öffne mit' Dialog benötige und SHOpenWithDialog_() so nicht unter PB aufrufen lässt
habe ich das mal so gemacht

Hoffe das ist richtig 'Konvertiert' habe. Bin noch nicht so bewandert mi PB


Source: https://msdn.microsoft.com/de-de/librar ... 85%29.aspx
Source: https://msdn.microsoft.com/de-de/librar ... 85%29.aspx
Code: Alles auswählen
#OAIF_ALLOW_REGISTRATION = $00000001 ; Enable the "always use this program" checkbox. If Not passed, it will be disabled.
#OAIF_REGISTER_EXT = $00000002 ; Do the registration after the user hits the OK button.
#OAIF_EXEC = $00000004 ; Execute file after registering.
#OAIF_FORCE_REGISTRATION = $00000008 ; Force the Always use this program checkbox To be checked. Typically, you won't use the OAIF_ALLOW_REGISTRATION flag when you pass this value.
#OAIF_HIDE_REGISTRATION = $00000020 ; Introduced IN Windows Vista. Hide the Always use this program checkbox. If this flag is specified, the OAIF_ALLOW_REGISTRATION And OAIF_FORCE_REGISTRATION flags will be ignored.
#OAIF_URL_PROTOCOL = $00000040 ; Introduced IN Windows Vista. The value For the extension that is passed is actually a protocol, so the Open With dialog box should show applications that are registered As capable of handling that protocol.
#OAIF_FILE_IS_URI = $00000080 ; Introduced IN Windows 8. The location pointed To by the pcszFile parameter is given As a URI.
Procedure SH_OpenWithDialog_(File$,OPEN_AS_INFO_FLAGS.l)
Protected LibraryID
Structure OPENASINFO
pcszFile.i
pcszClass.i
oaifInFlags.l
EndStructure
LibraryID = OpenLibrary(#PB_Any, "shell32.dll")
If LibraryID
Define OWD.OPENASINFO
OWD\pcszFile = @File$
OWD\pcszClass = #Null
OWD\oaifInFlags = OPEN_AS_INFO_FLAGS
CallFunction(LibraryID, "SHOpenWithDialog", hwnd,@OWD.OPENASINFO)
CloseLibrary(LibraryID)
EndIf
EndProcedure
File$ = #PB_Compiler_Home + "SDK\VisualC\Readme.txt"
SH_OpenWithDialog_(File$,#OAIF_ALLOW_REGISTRATION|#OAIF_EXEC)
MSDN-Links angepasst
29.05.2015
RSBasic