The MASM Forum

General => The Workshop => Topic started by: TouEnMasm on July 21, 2020, 06:35:12 PM

Title: Common Item Dialog
Post by: TouEnMasm on July 21, 2020, 06:35:12 PM
Hello,
This one is a translate of:
https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bb776913(v=vs.85)?redirectedfrom=MSDN (https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bb776913(v=vs.85)?redirectedfrom=MSDN)
He provide the needed material to do it,that is:
the translated ShObjidl_core.h with ALL IID and CLSID in shobjGUID.inc
The GUID ha been extract of the ShObjidl_core.idl with midl.
I suffer,a little,to pass it in 64 bits,help welcome.
Title: Re: Common Item Dialog
Post by: jj2007 on July 21, 2020, 07:30:55 PM
 :sad:
*** Assemble using UAsm64  ***
Tmp_File.asm(5) : Error A2106: Cannot open file: "sdk32.inc" [ENOENT]
Tmp_File.asm(6) : Error A2106: Cannot open file: "stdio.sdk" [ENOENT]
Tmp_File.asm(7) : Error A2106: Cannot open file: "stdlib.sdk" [ENOENT]
shobjGUID.inc(25) : Error A2102: Symbol not defined : DEFALIGNMASM
shobjGUID.inc(25): Included by
  Tmp_File.asm(8): Main line code
Tmp_File.asm(9) : Error A2106: Cannot open file: "shobjidl.sdk" [ENOENT]
Filedialog.inc(9) : Error A2210: Syntax error: CLSID_FileOpenDialog
Filedialog.inc(9): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(10) : Error A2210: Syntax error: IID_IFileOpenDialog
Filedialog.inc(10): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(11) : Error A2210: Syntax error: IID_IFileDialog
Filedialog.inc(11): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(12) : Error A2210: Syntax error: CLSID_KnownFolderManager
Filedialog.inc(12): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(13) : Error A2210: Syntax error: IID_IKnownFolderManager
Filedialog.inc(13): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(14) : Error A2210: Syntax error: IID_IShellItem
Filedialog.inc(14): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(15) : Error A2210: Syntax error: IID_IKnownFolder
Filedialog.inc(15): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(17) : Error A2082: Must be in segment block
Filedialog.inc(17): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(18) : Error A2082: Must be in segment block
Filedialog.inc(18): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(19) : Error A2082: Must be in segment block
Filedialog.inc(19): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(20) : Error A2082: Must be in segment block
Filedialog.inc(20): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(21) : Error A2082: Must be in segment block
Filedialog.inc(21): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(23) : Error A2210: Syntax error: FOLDERID_PublicMusic
Filedialog.inc(23): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(28) : Error A2082: Must be in segment block
Filedialog.inc(28): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(29) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
Filedialog.inc(29): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(30) : Error A2082: Must be in segment block
Filedialog.inc(30): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(34) : Error A2160: INVOKE requires prototype for procedure
Filedialog.inc(34): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(35) : Error A2030: Instruction or register not accepted in current CPU mode
Filedialog.inc(35): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(39) : Error A2160: INVOKE requires prototype for procedure
Filedialog.inc(39): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(40) : Error A2030: Instruction or register not accepted in current CPU mode
Filedialog.inc(40): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(43) : Error A2210: Syntax error: IKnownFolderManager
Filedialog.inc(43): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(44) : Error A2030: Instruction or register not accepted in current CPU mode
Filedialog.inc(44): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(48) : Error A2210: Syntax error: IKnownFolder
Filedialog.inc(48): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(49) : Error A2030: Instruction or register not accepted in current CPU mode
Filedialog.inc(49): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(51) : Error A2210: Syntax error: IFileDialog
Filedialog.inc(51): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(52) : Error A2030: Instruction or register not accepted in current CPU mode
Filedialog.inc(52): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(54) : Error A2210: Syntax error: IFileDialog
Filedialog.inc(54): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(55) : Error A2030: Instruction or register not accepted in current CPU mode
Filedialog.inc(55): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(60) : Error A2082: Must be in segment block
Filedialog.inc(60): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(61) : Error A2082: Must be in segment block
Filedialog.inc(61): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(62) : Error A2210: Syntax error: IShellItem
Filedialog.inc(62): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(63) : Error A2082: Must be in segment block
Filedialog.inc(63): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(64) : Error A2210: Syntax error: IKnownFolder
Filedialog.inc(64): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(65) : Error A2082: Must be in segment block
Filedialog.inc(65): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(66) : Error A2210: Syntax error: IKnownFolderManager
Filedialog.inc(66): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(67) : Error A2082: Must be in segment block
Filedialog.inc(67): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(68) : Error A2210: Syntax error: IFileDialog
Filedialog.inc(68): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(69) : Error A2082: Must be in segment block
Filedialog.inc(69): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(72) : Error A2082: Must be in segment block
Filedialog.inc(72): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(73) : Error A2082: Must be in segment block
Filedialog.inc(73): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(74) : Error A2082: Must be in segment block
Filedialog.inc(74): Included by
  Tmp_File.asm(10): Main line code
Filedialog.inc(75) : Error A2142: Unmatched block nesting: AddItemsToCommonPlaces
Filedialog.inc(75): Included by
  Tmp_File.asm(10): Main line code
ShObjidl_core.sdk(113) : Error A2151: Missing operator in expression
ShObjidl_core.sdk(113): Included by
  Tmp_File.asm(13): Main line code
ShObjidl_core.sdk(116) : Error A2151: Missing operator in expression
ShObjidl_core.sdk(116): Included by
  Tmp_File.asm(13): Main line code
ShObjidl_core.sdk(120) : Error A2151: Missing operator in expression
ShObjidl_core.sdk(120): Included by
  Tmp_File.asm(13): Main line code
ShObjidl_core.sdk(166) : Error A2151: Missing operator in expression
ShObjidl_core.sdk(166): Included by
  Tmp_File.asm(13): Main line code
ShObjidl_core.sdk(166) : Fatal error A1113: Too many errors
Title: Re: Common Item Dialog
Post by: TouEnMasm on July 21, 2020, 10:38:18 PM
What you need is here :http://luce.yves.pagesperso-orange.fr/header.htm (http://luce.yves.pagesperso-orange.fr/header.htm)
If you want it in italian language,the left button with  "TRANSLATION" is here to made It.
Click on the link showing "SDK 10.0" in the middle and upper part of the page.
If you don't found it,tell me!?
Title: Re: Common Item Dialog
Post by: TouEnMasm on July 22, 2020, 06:18:12 AM

This one is in 64  bits
It had been a battle with the headers ans uasm to get it,see the only one file in it
Title: Re: Common Item Dialog
Post by: TouEnMasm on July 22, 2020, 10:51:14 PM
There is two methods,Ifolder,Openfilename,here the result in images.
The Ifolder one need also the implementation of an interface (if you want),Have a look to see the differences.

Title: Re: Common Item Dialog
Post by: TouEnMasm on July 24, 2020, 07:32:17 AM
Hello,
This X64 one is fully functionnal.
There is the Ifolder and implementation of IFileDialogEvents
To recompile it you need http://luce.yves.pagesperso-orange.fr/header.htm (http://luce.yves.pagesperso-orange.fr/header.htm)
Corrections had been made  about the X64 COM part.
Hope he can be reusable.
the ShObjidl_core.sdk is a new file translated,there is also all the needed GUID in text,prefered is the UUID.lib