аЯрЁБс>ўџ ўџџџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ__SRP_4 !џџџџd__SRP_5џџџџџџџџџџџџbЯUserForm1 "V§ѓФ "V§ѓФ__SRP_1џџџџџџџџ˜-11, 42, 847, 413, UserForm1=110, 110, 968, 481, C, 62, 39, 920, 410, ThisDrawingThisDrawingbasAddrOfbasAddrOfmBrowseDeclaresmBrowseDeclaresmBrowseMainmBrowseMainmDemomDemoUserForm1UserForm1 VBA332.DLL iџџџџ‡  GetDirectoryД€0* pH‚dф ACADProject8@е = Root Entryџџџџџџџџ ]ЮDќФ?VBA_Projectџџџџ€pUЌшУ ]ЮDќФVBA_Project_Version(џџџџџџџџџџџџVBAџџџџџџџџ `9 UЌшУ€к'UЌшУ§џџџ ўџџџv !t#$%&'()*+,ўџџџ./0123456789:;<=>ўџџџ@ABCDEFGHIJKLMNOPQRSTUVWXYZўџџџ\h^_`abcdefg{ijklmnopqrs}uўџџџwxyz~|ўџџџўџџџўџџџ> œ ўџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ?@AўџџџCDEўџџџџџџџHIJKLMNOPQRSTUVWўџџџYZ[\ўџџџ^_ўџџџajcЃefghiЋklmnoxqrstпvwсyz{|}~€acadID="{B3CBD346-4AD9-4426-B108-95FB4AF470C0}" Document=ThisDrawing/&H00000000 Module=basAddrOf Module=mBrowseDeclares Module=mBrowseMain Module=mDemo Package={AC9F2F90-E877-11CE-9F68-00AA00574A4F} BaseClass=UserForm1 Name="ACADProject" HelpContextID="0" CMG="E9EB0ACA0ECA0ECA0ECA0E" DPB="4644A57A5F8ABD8BBD8BBD" GC="A3A140D99CDA9CDA63" [Host Extender Info] &H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000 [WorkspacPROJECTwmџџџџџџџџџџџџBШPROJECTџџџџŠThisDrawingџџџџч+_VBA_PROJECTџџџџџџџџ]СdirџџџџџџџџџџџџGUserForm1џџџџџџџџ`щ __SRP_2џџџџŒp__SRP_3џџџџџџџџџџџџŠhrU€€€€~~~y џџџџџџџџџџџџџџџџ    1 С /4џ ѕqLџ,Xџџ џ^ q8џ<џXџ l8џqTџўіџ Tџ 1xџ lTџ <lPџ^ q8џ<lL`ыHxџџi0џџ$ЛВ„iƒєџџџџXџi џџ$ЛВА„iƒb4џ0џЩ Щ 0 ќЦ0  А8lpџlџ4llџ€ ^qdџ@џ#lџѕў§ѕЎlpџChџhџMTџ@Dџ  lhџlpџGDџ`1xџ2lџhџ5DџЉCxџ<А4Љxџpџlџhџ@џDџ8$ 0 ќЦШ  0 ќЦ(  RName strFunctionIdlpfn strFuncName Y‰ (lares mBrowseMainmDemo UserForm1 ACADProjectяРF?C:\PROGRAMME\GEMEINSAME DATEIEN\MICROSOFT SHARED\VBA\VBA332.DLLVBA Ёџџџџ ЩQPтС”РЦWв…у  Ц&C:\Programme\ACAD2000\ACAD.TLBAutoCAD Йџџџџс)`0РFC:\WINDOWS\SYSTEM\STDOLE2.TLBstdole ™џџџџС p!ѕ ѓYв›>BC:\Programme\Gemeinsame Dateien\Autodesk Shared\AecXArchBase30.tlb AecXArchBase yџџџџЁ1€‰ЄјN д Ђ`АћфdMC:\Programme\Gemeinsame Dateien\Autodesk Shared\AecXAreaCalculationBase30.tlbAecXAreaCalculationBase Бџџџџйь xР№вЂ2РпьЎфC:\WINDOWS\SYSTEM\MSForms.TWDMSForms  9 с.E р….`ŒM ДMщќG—hѕAЏ-Vщm 9C:\WINDOWS\TEMP\VBE\MSForms.exd 1 YАc:хƒ6ёњBЋј \•/оxСЎ1kGКкlZtй­H ЃZцHDА ТіPв{НІT@d&пLДCв 5m$v…ли}мIx{ѕ <…"в‹BьЮž Њ`ѓListBox1!ш-ЌЂ6Я€SЊ` њ џџџџџџџџРШ[qJ—І eР‹UserForm7ћM˜СS-FЕЦхcм" F3Dynamic б џџџџџџџџљ а DDemo    ,  SHBrowseForFolder shell32.dll SHBrowseForFolderA a ‰ јSHGetPathFromIDList SHGetPathFromIDListA a Q  SendMessage user32 SendMessageA 1( CopyMemory kernel32 RtlMoveMemory с @ CoTaskMemFree ole32.dll CoTaskMemFree СX LocalAlloc LocalAlloc сСp LocalFree LocalFree сiˆ GetWindowRect GetWindowRect  GetSystemMetrics GetSystemMetrics йИ MoveWindow MoveWindow  ‘аe] ThisDrawing=0, 0, 0, 0, C basAddrOf=0, 0, 0, 0, C mBrowseDeclares=0, 0, 0, 0, C mBrowseMain=132, 132, 968, 530, C mDemo=t  …чr@( J< rstdole>stdole f%\*\G{00020430-;C 0046}#2.0#0#C:\WINDOWS\SYSTEM\STDOLE2.TLB# AutomaАtion^‚>AecXArchЈBas€G€ A€CcXArchBajs‚MЃ€™€‚MCF5O1-59F3-11D2-9B3EˆM00}#3…M€ gramme\Gemeinsame Dat eien\Ldesk Shared\‰I30.tl@b#AEC Si‚t€Уural --ObjektbibliotheЦk€M€"eaCalcul[‚{ƒq.Ш8eР7CUРl@;u@aaРciеРcnH>ЖР ЌРA>F8A48981 -094EA>4-A0A2@>60B€0FBE464{>Ѓ- Aea Ш4 5CР-MSFor ms>SDF8rmv/4zРpР7780BE™-F0C"0ƒuA237C0€DFECAEE7•œ„.TWD#Microsoft* ‚ Р Сkct Library€€(0 € rР(47FCE94D-6897-41F5-AF2D-56E96D0A391AаФФP\VBE\1…(exd_Dс.E р….@`ŒM Д‡‚„тГ‰‚…ThisDra wing 2Њ`T jiР.D kawinˆg HЂ‚1"‡c"E,Ђ й""+Ђ рUser,1Ы2[Ё e Х=10 mR / ГŸ# (`щ basAddИrOfу Цу bрhŠs ‡d šrO ™‰/Ўя WЈ!*  mBrows eDecl ‚sЊ2`$РXB`Vo )с”Db{l r% s0p)/аж‡+AП$MainЃ9ЋЃ9m`„r@iwт,NM`с9o/=+ЁЫmDemoфF2€3рa&mр / / ф)  )rU€€€ џџџџџџџџ(Qpўџџџџџџџџџџџ9(0 (p ўџџџџџџџџџџџ9Y00СPp ўџџџџџџџџџџџ9Љ(( `§џџџџџџџџџџџС0prU€€€€~}  џџџџџџџџџџџџ0 ќЦ   kЖџџџџџџџџ@џџ‡кБ+d=!F‚ћЋщЖ„і­ ФDcONНd%ЧVъІT@d&пLДCв 5m$vXМВк}ЖFЄНKrМ.IЃџџџџџџџџџrU€€€ 0 1‘ЉЙ8 ‘бrU€€€ џџџџџџџџD$щ`”џџџџџџџџp0 1‘ЉљбX  ѕqtџ:'`џPџ :<џN,џ,џrџtџPџ`§ЧLџ 1xџ/Lџ6`џPџ,џ lxџћ=&',џ'Pџ'`џѕxџM<џ@ 6`џPџ,џ"$ў €&ѕlxџ*#Lџ *F`џ 1(џ/Lџ5`џ l(џћ=,'`џ(џM<џ@$џ"$џџџx§џџџџГ‰ГŸџџˆXМВк}ЖFЄНKrМ.IЃ‡кБ+d=!F‚ћЋщЖ„џџ ќќm б4џџџџ8џџџџпџџ(џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ SPџџџџSџџџџSџџџџSџџџџ>"џџџџš џџџџџџџџLџџџџџџџџLџџџџ<,џџ–‚ƒ„…†‡ˆ‰‘‹јŽй’“ўџџџ•ўџџџ—˜™š›ЎžŸ ЁЂЄЅІЇЈЉЊЌЙ­ўџџџЏАБВГДЕЖЗИЛКўџџџМНОПРСТУФХЦхШЩЪЫўџџџЭўџџџўџџџаўџџџвгдеўџџџзўџџџўџџџўџџџџџџџџџџџџџџџџџџџџџџџрўџџџтуф цўџџџшщъыьэюя№ёђѓєѕіїўџџџљњћўџџџџџџџџџџџџџџџџџџџrU€€€ џџџџџџџџ8`§џџџџџџџљЁЙбщ0(#/8Љ`§џџџџџџџџџџџљщA(б`§џџџџџџџџџџџ)($љ`§џџџџџџџџџџџ(!`§џџџџџџџџџџџ1rU€€€€~} с1й ‘iљ 9Й Щ б9‰‰ ™<0џџ<4џџ<8џџ<<џџ<џџџџџџš0{C40CADF6-6344-4E4F-BD64-25C756EA028F}{405416A6-2664-4CDF-B443-D20C356D2476}…чr@ $*\Rffff*344072e7e0$*\Rffff*334072e7e0*\R0*#eц*\G{AC2DE821-36A2-11CF-8053-00AA006009FA}#2.0#0#..\WINDOWS\SYSTEM\FM20.DLL\2#Microsoft Forms 2.0 Object Library*#57ц*\G{AC2DE8rU€€€ џџџџџџџџ,Й pџџџџџџџџџџџџЁ4џџџџ,‰ (pџџџџџџџџџџџџЩс8YTpџџџџџџџџџџџџљ)A01xp џџџџџџџџџџџџYq‘""(9œpџџџџџџџџџџџџЉ,сРpџџџџџџџџџџџџЙб(‰рpџџџџџџџџџџџџщ0Apџџџџџџџџџџџџљ4џџџџ( $pџџџџџџџџџџџџ@ LpџџџџџџџџџџџџrU€€€€~} ‰ёЙб8 и˜rU€€€ џџџџџџџџ$`§џџџџџџџџџџџp4С aщ бббџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ8‰ Б џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљ1AQiЩ prU€€€€~}  џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџp21-36A2-11CF-8053-00AA006009FA}#2.0#0#..\WINDOWS\SYSTEM\FM20.DLL\2#Microsoft Forms 2.0 Object Library*#45паhўџ0џџџџ(џџџџџџџџџџ$ўџџџџџџџџџXџџ0џџџџџџџџ $џџџџџџџџpџџџџXƒўџџџџџџџ џџџџџџџџџџџџџџ`   ‰  lpBrowseInfopidlpszPathhwndwMsgwParamlParamhpvDest hpvSourcecbCopypvuFlagsuByteshMemlpRectnIndexxynWidthnHeightbRepaintInitDirFlagsCntrDlgMsg 14pDataIDhProjectstrFunctionЙсq џџџџ‘4С aщ бббџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ8‰ сБ џџџџџџџџџџџџњџџџ`ёџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ^џР€&ѕv*#tџ*Fdџ 1xџ/tџ5dџ lxџћ={,'dџxџMPџ@`џ"$ `џ H`џ5dџѕ'dџ 1xџ5dџ(,€(yxџ  $џ H $џ5`џѕ'`џ 1(џ5`џВX tџ`џdџ8[‘Сpњ$‚ 2џџџџўџџџаџџўџџџџџџџџџџџki$ƒўџџџџџџџџџџџџџџџџџџџџџЩt$џџџџаƒўџџџџџџџ8џџџџџџџџџџџџџџџџџџ$$$iƒўџџџџџџџџџџџџџџџџџ Jџџџџ`џџџџџџџџHPџkџџџџџџџџ””iƒўџџџџџџџџџџџџџџџџџ џџџџџџџџP„оџџџџxџџџџџ‚ 2џџџџўџџџ@џџўџџџџџџџџџџџƒўџџџџџџџHџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџрџџџџ0џџџџHџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџшџџџџџџџџ$~2@@ўџџџџџtџџџџџ @ўџџџџџdџџџ џџ @ўџџџџџ`џџџ џџ @ўџџџџџPџџџ џџ ,xџ(џ Lџ$џ`џPџ,џkџџџџиpџџџџџџџџџџџџpџџџџџџџџ0џџџџџџџџј D˜”џџџџџџџџџџџџџџџџџџџџџџhMEџџџџџџџџџџўЪ €€ џџџџ"€ "&( P,`xfџџџџџџџџџџџџЯZoџџџџЮ4CompObjџџџџџџџџЬaVBFrameџџџџџџџџџџџџЧ#basAddrOf џџџџ[ВmBrowseDeclares џџџџџџџџџџџџ?ў7mBrowseMainџџџџџџџџџџџџ-D#mDemo џџџџџџџџ"F__SRP_a#џџџџ]”__SRP_8 џџџџuЦ__SRP_9џџџџџџџџџџџџp‡__SRP_0џџџџџџџџ‚KЖџџџџџџџџџџџџџџџџџџџџџџxорџџџџГ‰фџџџџжжџџџџпџџ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ > џџџџ<(џџ<џџ<џџџџџџš"џџџџџџџџš џџџџџџџџš џџџџ<,џџ<0џџ<4џџ<8џџ<<џџ<џџџџџџ…чr@ $*\Rffff*334072e7e0$*\Rffff*344072e7e0*\R0*#11$*\Rffff*274072e6b7*\R0*#e$*\Rffff*264072e6b7п€  "џџџџ`џџџџџџџџџџџџ0џHџџџџџџџџџџ„џџџџџџџџџџX$ъ€$џџџџџџџџ@џџџџџџџџ џџџџџџp(ƒ џџџџџџРџџџџџџџџџџџџџџ$џџџџpƒ џџџџџџјџџџџџџџџџџџџџџџџџџ$ƒ џџџџџџPџџџџџџџџџџџџџџџџџџџџџџ0џџџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџШџџџџ˜ь$02`џџџџџ˜xdџџџ џџ џџ@ўџTџџџ џџ џџXPџџџџџ џџ@ўџ@џџџ џџ џџ˜0џџџ џџ џџ˜џџџџи`„№џџџџxџџџџџ`„&hvџџџ џџџџџџ0џџџџXџџџџџџџџџџџџXџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@MEџџџџџџџџџџўЪ,€€(€ џџџџ€ J€ џџџџ€ X€ p€ ˆ€ џџџџ€ Ј€ џџџџ€ HШ€ џџџџ€ 6€ TH€ T € Bј€ @€ џџџџ€ ^X€ RИ€ € џџџџ" €€ @€ JИ€ J€ а€ Zш€ ZH€ \H€ dЈ€ `Ј€ B€ P€ LhF=h  0 ИАШ€ џџџџџџџџ˜ХџџxиCTo include Browse for Folder in your project copy the three modulesPи - basAddrOfи - mBrowseMainи - mBrowseDeclaresџџ иinto your project intact.иBYou can combine the code in the three modules into one if desired.и/Then to call it use code similar to that below.иMYou will not have the checkboxes used in the demo but you will have to decideиMhow much functionality you want Browse to have. If all you want is the basic Ўи<browse dialog just set Flags = BIF_RETURNONLYFSDIRS and callи GetDirectory.иXI've used CurDir to set the initial folder selected in the dialog to the current folder.иLThat's a good default but you can use a hard wired string like "C:\FILES" ifи you want.Z ъX $A@0џџ j'№иV If .CheckBoxes("Check Box 4").Value = xlOn Then Flags = Flags + BIF_STATUSTEXT.иZ If .CheckBoxes("Check Box 6").Value = xlOn Then Flags = Flags + BIF_NEWDIALOGSTYLEи< DoCenter = (.CheckBoxes("Check Box 7").Value = xlOn) .и End Withg L № &Ў,Please select a location to store data files$ь'$h 2B@Blџџји With Sheet1иS If .CheckBoxes("Check Box 2").Value = xlOn Then Flags = Flags + BIF_EDITBOXиT If .CheckBoxes("Check Box 3").Value = xlOn Then Flags = Flags + BIF_VALIDATEи^ If .CheckBoxes("Check Box 5").Value = xlOn Then Flags = Flags + BIF_BROWSEINCLUDEFILESџџџџриD************ sollte aber auch in einer Userform tun *****************иE*********************************************************************иD************* war ursprќnglich in einer xls ;-) ********************џџџџ( $Ў• ~'о $Ў\Ў*.dwg$~'о.dwg") оЎ_џџxџ о 2!@B@Fџџ џџџџZъhъ€џџџџЈ0ДAttribute VB_Name = "mDemo" Option Explicit Pub$ RetSt r As ing 'To include Browse for Folder2 your project copy theree mo dulesG - basAddXrOfWmQMain Decl„ar9into f!act.WYo u canzmb4inye ­inDX€%oif €desired#(The€o%ll it utcoЁ#simi€E €that bel”ow€' ""ƒЂSЃ Msg!Xу…adForm1м.SрЉЃСIР‚с€ЁЦЖџџџџџџџџџџџџџџџџџџџџџџxоz џџџџГ‰=џџџџ– жжџџџџпџџ$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ ЈџџV<џџЬК џџџџ> џџџџџџџџš џџџџџџџџLџџџџ”џџџџ<(џџ<,џџ<0џџ<4џџ<8џџ<<џџ<џџџџџџ…чr@ $*\Rffff*264072e6b7$*\Rffff*274072e6b7(*\Rffff*264072e6b7\0*\R0*#c$*\Rffff*2b4072e703*\R0*#d*\R1*#f3*\R1*#10dпа№$ $ $+ь0`џџџџи№џkXџџџџŒџџџџiƒюџџџџ џџџџx€џџџџiƒ№џџџџџџџџ˜€iƒђџџџџџџ џџИ€Iƒєџџџџџџ џџџџџџ€ 14 „іXџџџј@$`„ џџџџTџџџџџ`„јџџџџPџџџџџ+№`џџџџџџџџџџџџ pџџџџ ŒiƒІџџџџџџџџџџ„iƒєџџџџџџџџџџА„iƒbџџџџџџџџџџа„iƒџџџџџџџџџџџџџџ„+ˆ`џџџџџџџџx@џk0џџџџ 7Œiƒ џџџџ џџџџџџџџ€`„џџџџvџџџ џџ „џџџџpџџџ x+Ш`џџџџџџџџАxџ+џџџџџџџџDŒ+(`џџџџџџџџџџџџxџ џџџџLŒiƒор џџџџџџџџ€ џџџџ`џџџџџџџџџџџџ hџџџџџџ Q„iƒІџџџџџџџџџџџџџџ€ „џџџџџџџџ $`„џџџџџџџџџџ`„џџџџџџџџџџ`„џџџџџџџџџџ`„џџџџџџџџџџјџџџџ№т€ъџџџџџџ џџ@џџџџџџџџџџџџџџџџ№0Ш(џџџџџџџџџџџџˆџџƒшџџџџџџџџџџџџџџџџџџџџџџџџџџџџЈ ƒшџџџџџџџџџџџџџџџџџџџџџџџџƒшџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@џџџџИџџџџрџџџџ˜xџџџџџџџџџџџџџџџџXџџџџџџџџџџџџ8Pџџџџџџџџџџџџ џџџџџџџџџџџџџџџџџџџџџџџџџџџџиџџџџџџџџџџџџџџџџџџџџhЈ`ьџџџџxџџџџџјџџџџъ–ОЎќњDџџџџўџ€Lџџџ№`A$ и@ўџџџџџ<џџџ џџ @ўџџџџџ8џџџџџ @ўџџџџџ4џџџџџ @ўџџџџџ0џџџ џџ И˜ИФўџџџџџџџџ˜ Р$џџџџ€PџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџPџџџџh`џџџџxџџџџџџџџџPDџџџџhџџџџџџџџP0џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџXџџџџИџџџџ џџџџˆџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@0`џџџџxџџџџџџџџџ7џџџџhžо@ўџplџџџџџ @ўџаhџџџџџ @ўџџџџџdџџџџџ @ўџџџџџTџџџ џџ @ўџџџџџDџџџ џџ @ўџџџџџ@џџџџџ џџџџ№џџџџџџџџџџџџ(џџџџџџџџџџџџџџџџџџџџРџџџџџџџџџџџџџџџџџџџџџџџџџџџџ 8MEџџџџџџџџџџўЪ[€€€ џџџџB €€ € џџџџf 0˜$  Ш а€ џџџџ и*ј € џџџџ<4   `h p ˜€  ,И€ Ш ш ј € џџџџ€ > B  `hp€ tx 2№ (@€ fH Аа€ Vи€ D0€ 0x€ XЈ  $ "0 X`$h€ џџџџ€ "˜B Р€Ш8рј$Z(08@€ џџџџ€ BX € ^H€ RЈB€ N € B  € џџџџ€ b€ P€€ аB  №ј€ џџџџ€ "  (€0€HXh€˜Ј:Ијџџџџ№ ХџџxZъZърZъъ ђ'ъиW'Copy dialog centering setting to module level variable so callback function can see itљ іэЄ9ZиRoot folder = Desktop џџ є9^ №9` – юЄ $О'ј јЧ юЧ юЄ A@Ў ј9b ќ!ў$њЄ •и-Establish the callback function 9BaџџЎBrowseCallBackFunc$D9Bhџџhnџџ`иDisplay the dialog і$˜' иGet path string from pidl  $'ь  A@И  ј јA@Фfџџри8Windows calls this function when the dialog events occur0 єт ‚HQи nDialog is being initialized. I use this to set the initial directory and to center the dialog if the requested І ŒЄ A@Єи;Send message to dialog ъ”F ІA@g „HQи _User selected a folder - change status text ("show status text" option must be set to see this) І ˆЄ b$A@Є †HQи OThis message is sent to the callback function only if "Allow direct entry" andи >"Validate direct entry" have been be set on the Demo worksheetи )and the user's direct entry is not valid.и Q"Show status text" must be set on to see error message we send back to the dialogA@  І ˆЄЎ Bad DirectoryA@ЄЄ'и#Block dialog closingsџџ kџџ˜Є'иAllow dialog to closefџџhиConverts a PIDL to a string№ZъP hъh  $ž' •  Є$ }Є $о'aџџаЎ'hџџРfџџИиWXL8 is very unhappy about using Excel 9's AddressOf operator, but as long as it is in aиL function that is not called when run on XL8, it seems to allow it to exist.ff0ˆи[It is not possible to assign the result of AddressOf (which is a Long) directly to a memberиIof a user defined data type. This explicitly "converts" it to a Long andиallows the assignmentШ о'fџџАиCenters dialog on desktop(ZъˆъЈъРZъиъ№ І A@Ш !и !о ' !к !ж ' в$Ю' д$Ю' І   Є   Є  ЄA@мlџџИџџџџАиG BrowseCallBackFuncAddress = Long2Long(AddressOf BrowseCallBackFunc)и<*************** Funktion nicht unter ACAD ******************и<************************************************************џџџџА*ИAttribute VB_Name = "mBrowseMain" Option Explicit Dim CntrDialog As Boolean Func^GetDirectoРry(IniVSрng, FlШags LoPl M, Msg)Y2 Ќ \.ЙP€rocData €Invoke_ˆAЬ \n14Ц ƒЙbInfoUBROWSEINFO pidцl ƒIlpˆ[ ƒˆ€=‡€^''C opy dƒŒcentering settto module level variabso callback "fЁcan€e ƒКPWith ‚_ A .YRoot€u0 '‚folderDesktopˆlpszhTit€8=Џˆ uњlCd=CfСrССЧA= LoР)Alloc(LPTR, Len…w) + 1)ЧСBMem€ ByVal =,ФWO&lP№aram@3FGˆIf @(ApAЉ‚aA .Vers@Ў) > 8 Th€en 'Est€[€ish theO\ƒ‡=.lpfnР5CУC€gB€gС•Ad dress‡ El se Of(""HJEnd IfCСAzC'Diрsplay,У•!‚Њ= SHCFoДrF‚}(ˆФ'Ъ( pa€s‚н f№rom Щб РP€F€ID(СфCoTaskс`9FreeшЂAbˆ3Ё$0СH'Wi,ndŠт-sis=g\wс21dfРbnt€s occurЈ‰хЯ'(CJhw@'@#vocр†‡xClƒH pa†EBЇ|Sel€—` Case+e"BFFM_INIT€IALIZEDУ)ŸЁFa€6BЃbeс~iрŸ`‚ized. I u` th ?р@ƒb;D`‡„І aŸ Ѓˆbd$ifЂrequeste‚d‹SendM Spage Ё#`mSETSELECTIONA, 1,Ъ Ѓ'с mр пƒ k  kшbiC‚›dРс ''$ CHANRG$Us”sB,ed a D–- chanstatu`Eext (" show H" oƒвmust bъeсЋ @s€Sс*ЄVХ18"TATUSTˆEXT@"0, `ƒFˆ VР>DAT EFAILŽTA;Ћ%* €–R A‹`ŽR~, ScАrWidрŸIР/gerBHeig№0WC1Dlg/@/Rг :у‚ ,. d4ѕ=u.R}Т-ісAЦtзBиott@ЋчTЭж $= `SyАmMe€Ўcs(SM_CXFULLSC№REENKі/… Y.Move%д”(f- Х) р/ 2, ЁєВїГФЕ,Q“`˜“  ЖџџlœЎџџSHBrowseForFolderAџœ<myZSHGetPathFromIDListAџџџЌh(SendMessageAt/ѕЖŒВTџџRtlMoveMemoryџџМАxooCoTaskMemFree bЖдџџœџџLocalAllocџЖєџџРLocalFree ЌрjGetWindowRectlЌ8џџџџGetSystemMetricsЌ`p$џџMoveWindowџџџџ џџџџџџџџџџџџџџџџxJpŽџџџџГ‰ажџџџџŒBB)џџџџпџџ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ(@џџV@џџЬ> џџџџ<џџџџџџ…чr@ $*\Rffff*264072e6b7(*\Rffff*264072e6b7\0(*\Rffff*264072e6b7\1пџџџџ` Vаџџџџh€X0џџummyh€ZHџџœГh€\`џџh€^x џџt/ѕh€`џџthe h€BЈџџ rooh€bРџџto bh€dџџџџџџifieژj  BџџџџџџџџџџџџџџLџџЪ˜n(BџџџџџџџџџџџџџџژpШ Bџџџџџџџџџџџџџџ theژt№ BџџџџџџџџџџџџџџLџџЪ˜x €Bџџ џџџџџџџџџџџџژz Bџџ џџџџџџџџџџџџe ofژ~@ @Bџџ џџџџџџџџџџџџLџџЪ˜‚Bџџџџџџџџџџџџџџژ„h BџџџџџџџџџџџџџџЪ˜ˆ dBџџџџџџџџџџџџџџLџџЪ˜ŒfBџџџџџџџџџџџџџџژŽИ gBџџџџџџџџџџџџџџЪ˜’р BџџџџџџџџџџџџџџLџџЪ˜–@Bџџџџџџџџџџџџџџژв Bџџџџџџџџџџџџџџ+˜˜pџџџџџџџџџџџџpџџ )ƒšџџџџџџџџџџџџ€A$+ž(pџџџџџџџџџџџџиџџ( iƒ џџџџџџџџџџј„iƒЂџџџџџџџџџџџџџџ„ctio+ЄиTpџџџџџџџџџџџџXџџT fineiƒІџџџџџџџџџџx„passiƒЈџџџџџџџџџџ˜„ck fiƒЊџџџџџџџџџџИ„s spiƒbџџџџџџџџџџџџџџ„le t Ўxxpџџџџџџџџџџџџџџџџx<ThiƒАџџџџџџџџџџ8€ndexiƒВџџџџџџџџџџX€iƒДџџџџџџџџџџџџџџ„ъ ИиœpџџџџџџџџџџџџИџџџџœn fiiƒКџџџџџџџџџџџџџџ„(If+ОXРpџџџџџџџџџџџџџџР le siƒРџџџџџџџџџџ8„ed.iƒТџџџџџџџџџџџџџџ„lude+ФИрpџџџџџџџџџџџџ˜џџр ee viƒЦџџџџџџџџџџџџџџ„и5+Ш@pџџџџџџџџџџџџјџџ llbaiƒІџџџџџџџџџџ„us t)ƒЪџџџџџџџџ8џџџџ€sageA$+ЮH$pџџџџџџџџџџџџ€џџ$ cestiƒаџџџџџџџџџџџџџџ„CanƒTџџџџџџШџџџџџџџџџџџџџџ џџ$Ьџџџџшџџџџh€оџџrsioh€жџџialoh€и0џџontrh€кџџџџ џџch t+мџџџџLpџџџџџџџџџџџџˆџџL  rsioiƒІџџџџџџџџџџЈ„ inviƒоџџџџџџџџџџШ„7ediƒрџџџџџџџџџџш„ll ciƒтџџџџџџџџџџ „/Briƒфџџџџџџџџџџ( „FM_Viƒцџџџџџџџџџџџџџџ„ge. џџџџАژfx BџџџџџџџџџџџџџџЪ˜hиBџџџџџџџџџџџџџџЪ˜lBџџџџџџџџџџџџџџЪ˜rPBџџџџџџџџџџџџџџЪ˜vx@BџџџџџџџџџџџџџџЪ˜|Ш Bџџ џџџџџџџџџџџџЪ˜€№€џџBџџ џџџџџџџџџџџџЪ˜†@BџџџџџџџџџџџџџџЪ˜ŠheBџџџџџџџџџџџџџџЪ˜ИhBџџџџџџџџџџџџџџЪ˜”р@BџџџџџџџџџџџџџџЪ˜дџџџџBџџџџџџџџџџџџџџџџџџџџџџџџџџ@иP@h˜џџџџШ № ИxШџџџџИџџџџџџџџXx h И  иP и№рџџџџ аH  @ џџџџ р ( џџџџџџџџџџџџxџџџџџџџџџџџџџџџџџџџџ0џџџџџџџџџџџџџџџџxƒTџџџџџџP џџџџџџџџџџџџџџџџџџ$џџџџ№ 0P џџџџџџџџHа џџџџџџџџџџџџџџџџ( џџџџџџџџџџџџџџџџџџџџџџџџџџџџ;0 MELџџџџџџџџeўЪ‡€€ џџџџ€ џџџџ€€<€ џџџџ€HP€ B˜€ :р€ : € (`€ 0џџџџ€Lˆ€ Bи€  € џџџџ€J8€ Bˆ€ 0а€ џџџџ€>€ @€ 0џџџџ€R`€ :И€ <ј€ 0џџџџ€J8€ 8ˆ€ 0џџџџ€PР€ B€X€ џџџџ„ `„ p€ џџџџ€ €„6˜€ .а€ 8€ @џџџџ„:8€ ,x€ џџџџ„:Ј€ 4ш€ , € џџџџ„HP€ J˜€ Dџџџџ„Jш€ 68€ џџџџ„Jp€ >Р€ 6 € D8 € Dџџџџ„R€ € џџџџ„\и € џџџџ„F8 € 4€ € џџџџ„DИ € 4 € џџџџ„J8 € џџџџ„dˆ € џџџџ€ :№ € џџџџ„L0 € $€ € 4џџџџ„LЈ € Vј € 4џџџџ„VP € FЈ € 8№ € F(€ Hp€ 8И€ џџџџ€ 2№„(„@„X„p„ˆ€ џџџџ„  „ А„Р€ џџџџ€ (иH€€ H€0€ @@H€€€ џџџџ(€˜€ џџџџ(€ Ј€ џџџџH€А€ џџџџH€Ш€ џџџџ€ џџџџ€ ZиH€ 8€ џџџџH€ @€ џџџџ„ H„ X€ џџџџ€h€p€x€€€ˆ€€ џџџџH€,˜€ ,И€ џџџџ€ џџџџџџџџ№Хџџxш[ъи#.Handle to the owner window for the dialog box.џџ[ъ0и$:Address of an ITEMIDLIST structure specifying the locationи0;of the root folder from which to browse. Only the specifiedЎŒіВи03folder and its subfolders appear in the dialog box.и04This member can be NULL; in that case, the namespaceи0"root (the desktop folder) is used.[ъHи =Address of a buffer to receive the display name of the folderи0;selected by the user. The size of this buffer is assumed toи0be MAX_PATH bytes.[ъ`и(;Address of a null-terminated string that is displayed aboveи0<the tree view control in the dialog box. This string can beи0)used to specify instructions to the user.[ъxи'0Flags specifying the options for the dialog box.и0See constants below[ъи(DAddress of an application-defined function that the dialog box callsи03when an event occurs. For more information, see theи05BrowseCallbackProc function. This member can be NULL.[ъЈи$;Application-defined value that the dialog box passes to theи01callback function (in pData), if one is specified[ъРи$BVariable to receive the image associated with the selected folder.и0<The image is specified as an index to the system image list.mџџ Z$ІъP Z$Єъx иulFlag constantsZ$Іъии-$Only return file system directories.иB(If the user selects folders that are notиB1part of the file system, the OK button is grayed.Z$Іъ  и*(Do not include network folders below theиD%domain level in the tree view controlZ$Іъи5(Include a status area in the dialog box.иD-The callback function can set the status textиD&by sending messages to the dialog box.Z$Іъ(и.6Only return file system ancestors. If the user selectsиDCanything other than a file system ancestor, the OK button is grayedZ$ІъШ и78Version 4.71. The browse dialog includes an edit controlиD/in which the user can type the name of an item.Z$І ъPи78Version 4.71. If the user types an invalid name into theиD7edit box, the browse dialog will call the application'sиD/BrowseCallbackProc with the BFFM_VALIDATEFAILEDиD> message. This flag is ignored if BIF_EDITBOX is not specifiedZ$І@ъ№ и,@Version 5.0. New dialog style with context menu and resizabilityZ$І€ъxи,JVersion 5.0. Allow URLs to be displayed or entered. Requires BIF_USENEWUI.Z$Іъ и,3Only return computers. If the user selects anythingиL.other than a computer, the OK button is grayedZ$І ъ и.2Only return printers. If the user selects anythingиL.other than a printer, the OK button is grayed.Z$І@ъШи/7The browse dialog will display files as well as foldersZ$І€ъ@ и&RVersion 5.0. Allow display of remote shareable resources. Requires BIF_USENEWUI.и3Message from browser to callback function constantsZ$Єъ№и$:Indicates the browse dialog box has finished initializing.и;The lParam parameter is NULL.Z$Єъи$9Indicates the selection has changed. The lParam parameterи4Ocontains the address of the item identifier list for the newly selected folder.Z$Єъh и&DVersion 4.71. Indicates the user typed an invalid name into the editи8@box of the browse dialog. The lParam parameter is the address ofи82a character buffer that contains the invalid name.и8?An application can use this message to inform the user that theи8Aname entered was not valid. Return zero to allow the dialog to beи82dismissed or nonzero to keep the dialog displayed.и+ messages to browser from callback functionZ$ fЄd ъ@Z$ fЄe ъ Z$ fЄf ъhZ$ fЄg ъZ$ fЄh ъИ Z$ІъИZ$І@ър Z$ ’ ”ъри"Main Browse for directory functionž0иGets path from pidlž˜и9Used by callback function to communicate with the browserž ž иxž иžXиT'The following declarations for the option to center the dialog in the user's screenИ@Z$ЄъZ$Єъ ша[ъш[ъ[ъ[ъ0mџџhž Hи%'End of dialog centering declarationsџџџџRR џџџџџџџџџџџџџџџџџџџџRаRџџџџџџџџџџџџџџџџџџџџ[ЖAttribute VB_Name = "mBrowseDeclares" Option Explicit Pub4 Type BROWSEINFO hOwner €As Long" 'Handle to the o,window fordialog box.SpidlRo„ot['AddДs of an ITEMIDLIST structure spe`cifyi™?lxocao0V' 2 rHfold€yfrom wh(ichobЅ. 0Onlykƒ=iedА6„0€ its subƒs appear inЊiThis m(emb3c€Pbe@ NULL;Ca€t case,‚n@Œspace03ТL(AOdesktLop@~P) €u8sed„}щ.ƒ!pszDisplay{BДЁS@Й{€Ї 0buff@9€ЁreАceiv@Є€Ѓd> A7‘С(ZА9selected bCУ@6r. T€sєiz€ОfRfuncІРW`Aс&Ж „lls! 'whe  n event oc€curs. F ТЄmoрЖin€Уmтј, s@"РП Ў УлCallbackрProc Ѕ!sРLЏŸŸ‘Э #lPaˆram.'Apъa‹+valua‘/+pнРƒeEUncЄ& (@cpData), if on~eXг,oj^S i`Imageѕ'РVariabC€йWFir`oci2Gwќit tSЅTУX/П}'qWСDb€0 ŠatnР@dexU@€system УlistрEndтŽиConst €WM_USERР“€&H400 Д‘CгY= 26Р < 'cEёN#=BIF_RETURNONLYFSDITRSТ1 'т„rТeаŒn fi@ф „di tori–_Oя'Iёie~ 1Q7Ёl!Mqz@(hу№)Ђ no ЁУ'parP?“X Г†OKрztt`Јс gray‚я_DONTGOBELOWDOMAIN’2 'DoЁp"clude netwoфrkt‹s bY№Ppo'doma}Р9lаP&qОrО(Б#STATUSTEXšTВ 4па Inc "aБatu 0reіaР  оЗ/Ђ7пG‘|set2у 0atexя$Џ…'0—send1y№messIЅS _ ф7FSANCEStTOє783џ7є7a№nces№7PkŸ3q 'anytКh1 o№oСв@Кaj@ћeŸ3 “3Ÿco_EDITBO2Xb'10/'Versх4.717гАƒвeiГ)bYed~i0Ч“Ё /'пP5к`eВMq(t‘ь ;†Пpi@`_Ÿ_V€ALIDATEЂ~2ЏCœI!сi’n№~idcinCёяŸ] џ'Т0є“ KwilїЖl call the application's @'BrowseCФbackProc withоBFFM_VALIDATE@FAILEDDu message. This flag ignored if BIF_EDITBOX not specifiedACB Pub€Ї Const8NEWDIALOGSTYLE = &H40ƒВ'VersМ 5.0. New dialog styleƒ™contextnnu and resizabi@lity 8BROWSEINCLUDEURLS ‚989 8Allow @s to be@splayaKor eРРM.Р Requi@B3ˆUSE4UI.˜FORCOMPUTER‚1000@ 'Only/turn comp„ut?. If‚…user selects€9yth˜ingџdIГ'oРЛBr@an a† ,‚OK buttdonС…grС@8PшRINХ72С7@Š8шpriPs8Щ0лпK8D 8Y8ЄGFРsУGв4c'T@†bТ{eU$wi ‰di"G fileр7s weХ a poldр<’)€SHAREAB„b68$ jb cTХ of Hmote sh`areab d So0urce -XU'Mƒƒ from # `AoЁЁ” funŽcЁ  C@want ЁC­ka—INITрyI(ZED [1 2'Is  AtРitem idр•Йr li Џf ˜newРŽЛ€/fТQ#‘ q##+йB3 ІЌ4.71рЊCtyp€рinvali€d name †ТoЂ‘edit%r§€'ANd#jQ32#‘ОaVЏЏ'pU €9ac(buffЁ@]that15tіŸIЏŸ'Ap\ѓз‹ „ nWidthS…He h, bРRepaintˆЧ''mof dialog centering d~aС|sС= Жџџ|8ЎџџЎEbGetExecutingProji8<wo oTipGetFunctionIdџџ8dџџ(TipGetLpfnOfFunctionIdџџџџџџџџџџџџџџџџџџџџxZђHџџџџГ‰WЈџџџџRRЎџџџџпџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ(6 џџџџ<џџ< џџ<џџџџџџ…чr@ $*\Rffff*2b4072e703пџџџџ(#4`pџџџџџџџџџџџџ@џџ iƒ6џџџџџџџџџџџџџџ€MDEM#:(pџџџџџџџџџџџџ џџ( iƒ6џџџџџџџџџџР„ual iƒ<џџџџџџџџџџр„operiƒ>џџџџџџџџџџџџџџ‚#@ Ppџџџџџџџџџџџџ@џџP  teliƒ6џџџџџџџџџџ`„our iƒ>џџџџџџџџџџ€„tz aiƒBџџџџџџџџџџџџџџ‚arou+DџџџџЬa^џ ф*\G{000204EF-0000-0000-C000-000000000046}#3.0#9#C:\PROGRAMME\GEMEINSAME DATEIEN\MICROSOFT SHARED\VBA\VBA332.DLL#Visual Basic For Applicationsж*\G{C094C1E2-57C6-11D2-85E3-080009A0C626}#1.1#0#C:\Programme\ACAD2000\ACAD.TLB#AutoCAD 2000-TypenbibliothekИ*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINDOWS\SYSTEM\STDOLE2.TLB#OLE Automation2*\G{0CF50021-59F3-11D2-9B3E-000000000000}#3.0#0#C:\Programme\Gemeinsame Dateien\Autodesk Shared\AecXArchBase30.tlb#AEC Architectural 3.0-ObjektbibliothekX*\G{F8A48981-094E-11D4-A0A2-0060B0FBE464}#3.0#0#C:\Programme\Gemeinsame Dateien\Autodesk Shared\AecXAreaCalculationBase30.tlb#AEC Area Calculation Base 3.0-Objektbibliothekр*\G{780BEC00-F0C0-11D2-A232-00C0DFECAEE4}#2.0#0#C:\WINDOWS\SYSTEM\MSForms.TWD#Microsoft Forms 2.0 Object Libraryф*\G{47FCE94D-6897-41F5-AF2D-56E96D0A391A}#2.0#0#C:\WINDOWS\TEMP\VBE\MSForms.exd#Microsoft Forms 2.0 Object Libraryс.E р….`ŒM Д џџџџџџ…чr@ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџГ‰ThisDrawing 1b4072e4cd*DџџйcџџUserForm1 344072e7e0*D3џџГŸ€џџџџ˜m џџbasAddrOf 2b4072e703*D2џџWЈ8ЎџџmBrowseDeclares 264072e6b7*DTџџажPp)џџmBrowseMain 274072e6b7*Dшџџ=Pџџџџ8џџџџИџџ mDemo 334072e7e0*D џџфPџџџџИџџџџ˜џџџџ€џџиџџџџџџџџџџџџџџџџџџџџџџџџџџџџ8џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ˜џџџџџџџџџџџџџџџџџџџџџџџџџџџџPџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџИџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџDSаkžЉAЕ8ui(ЫОџџџџh›)zoŠљqOџџџџџџџџH.1J,›ФїA˜œІ™pЯЮѕџџџџUі !z–*AЖфЅЉЮ`фџџџџџџџџ€šQъpѓџџџџ%СеЗhxBК`Všъ§'ЁџџџџѓяTŸр3ЁFЌ‰яC!ЊџџџџџџџџИ<Л_0aлLІIЏo(„№9џџџџџџџџ˜€ІБџф==€џDim@€џDoG€џEnd`€џIfnLeftz€џLoop–€џpublicО€џWendП€џWhileС€џwith AutoCAD"ј VBAїтWin16С~Win32MacГВ ACADProjectІдstdole“` AecXArchBaseДAecXAreaCalculationBase€§ ThisDrawingЙ5 €џ_EvaluateйModul1Эtest4ЋareasќKAecSpace‰sset/.AcadSelectionSetЫЩ SelectionSetsгAddїrSelectOnScreenЛ DescriptionО LengthYФDeleteИx AcadDocumentZModul2Ю basAddrOfСGetCurrentVbaProjectq…hProjectDЄ vba332.dllpг GetFuncIDhиstrFunctionNameUM strFunctionIdћ0GetAddrлAlpfnВЖЌ(AddrOf'К strFuncNamesM lngResultQstrIDJ`strFuncNameUnicodeт)NO_ERRORIStrConvx' vbUnicodeјІ mBrowseDeclaresY Ў(!BROWSEINFOЗYhOwnerEmpidlRootdpszDisplayNamehr lpszTitleSŽulFlagsэСlParam…7iImageUрЌ(WM_USERJЃЌ(MAX_PATHЇ(Ќ(BIF_RETURNONLYFSDIRS-МЌ(BIF_DONTGOBELOWDOMAINЩbЌ(BIF_STATUSTEXTТiЌ(BIF_RETURNFSANCESTORS˜V Ќ(BIF_EDITBOXџ# Ќ(BIF_VALIDATEхЌ(BIF_NEWDIALOGSTYLEН>Ќ(BIF_BROWSEINCLUDEURLS„Ќ(BIF_BROWSEFORCOMPUTERvпЌ(BIF_BROWSEFORPRINTERВCЌ(BIF_BROWSEINCLUDEFILESo} Ќ(BIF_SHAREABLE™ЗЌ(BFFM_INITIALIZED"уЌ(BFFM_SELCHANGEDšџЌ(BFFM_VALIDATEFAILEDhЌ(BFFM_SETSTATUSTEXTAdљ Ќ(BFFM_ENABLEOKeЎЌ(BFFM_SETSELECTIONAщЌ(BFFM_SETSELECTIONWщЌ(BFFM_SETSTATUSTEXTWyљ Ќ(LMEM_FIXEDњp Ќ(LMEM_ZEROINITЋЌ(LPTRМИЌ(SHBrowseForFolder"№ lpBrowseInfo№r shell32.dll+ˆЌ(SHGetPathFromIDListKœpidlЎЇpszPath№˜ Ќ(SendMessageя‘hwnd/СwMsg+awParambuser32*Ю Ќ(CopyMemory&hpvDestјя hpvSourceмŒcbCopyCюkernel32_Ѕ Ќ(CoTaskMemFreeлMpvЛ^ ole32.dllШ Ќ(LocalAllocаuFlags&uuBytesЭ… Ќ(LocalFree^hMemЪ Ќ(GetWindowRectBšlpRectЫЎ(!RECTiЌ(GetSystemMetrics•%nIndex'Ќ(SM_CXFULLSCREEN‹Ќ(SM_CYFULLSCREENMVTop5кRight BottomH{ Ќ(MoveWindow_yxoylnWidthЬЕnHeightѕэbRepaint4О mBrowseMain%s CntrDialogђЊ Ќ(GetDirectory$АInitDir<ѕFlagsoCntrDlg–0MsgQЕbInfo” lpIn`џџџџџџџџџџџџ рџџџџ"")Œ.MMiƒFџџџџџџџџџџџџџџ€аГ`„6џџџџџџџџџџ˜ёВ`„Hџџџџџџџџџџre`„Jџџџџџџџџџџel`„Bџџџџџџџџџџch`„Lџџџџџџџџџџed@”NџџџџџџџџLџџoxџџџџhџџџџ`џџџџџџџџ ƒ2џџџџџџрџџџџџџџџџџџџџџџџџџ$џџџџ@ƒ2џџџџџџџџџџџџџџџџџџџџџџџџ$џџџџИџџџџџџџџџџџџџџџџ џџџџџџџџџџџџџџџџџџџџџџџџ№џџџџџџџџџџџџџџџџџџџџџџџџџџџџ˜MEPџџџџџџџџўЪK€€ џџџџ€ V€ :`€ L € џџџџ€ Z№€ TP€ џџџџ€ 6Ј€ џџџџ€ zр€ `€ x€ H€€ HШ€ L€ `€ x€ N€€ Bа€ € J € Hp€ VИ€ € zH€˜H€$АH€$Ш€ џџџџ€ zр€ `€ p€ Zx€ Vи€ 0€ \8€ Z˜€ &ј€ z B   €Ј€А€И€Р€Ш€ џџџџ€ а€ џџџџ€ <р € џџџџ€ "8 € N` € JА  € џџџџ€ R  h € 2x А € џџџџ€ Pа € "  H € X  x € џџџџ     Ј А И Р џџџџа ХџџxиPNOTE: The brilliant AddrOf function herein contained is the work of Ken Getz andDи3Michael Kaplan. Published in the May 1998 issue ofиEMicrosoft Office & Visual Basic for Applications Developer (page 46).иSOffice 97 does not support the "AddressOf" operator which is needed to tell WindowserиMwhere our "call back" function is. Getz and Kaplan figured out a workaround.и/The rest of this module is entirely their work.MMиs-------------------------------------------------------------------------------------------------------------------и DeclarationsииB These function names were puzzled out by using DUMPBIN /exportsиB with VBA332.DLL and then puzzling out parameter names and typesиE through a lot of trial and error and over 100 IPFs in MSACCESS.EXEи and VBA332.DLL.ииG These parameters may not be named properly but seem to be correct inи< light of the function names and what each parameter does.ииD EbGetExecutingProj: Gives you a handle to the current VBA projectиB TipGetFunctionId: Gives you a function ID given a function nameиO TipGetLpfnOfFunctionId: Gives you a pointer a function given its function IDииs-------------------------------------------------------------------------------------------------------------------žž `ž иs-------------------------------------------------------------------------------------------------------------------и AddrOfииT Returns a function pointer of a VBA public function given its name. This functionиO gives similar functionality to VBA as VB5 has with the AddressOf param type.ииU NOTE: This function only seems to work if the proc you are trying to get a pointerиT to is in the current project. This makes sense, since we are using a functionи named EbGetExecutingProj.иs------------------------------------------------------------------------------------------------------------------- ZъZъZъ0ZъHZъ`ZЄъxи5 The function name must be in Unicode, so convert it. F R$P'Lи Get the current VBA projectиG The results of GetCurrentVBAProject seemed inconsistent, in our tests,иC so now we just check the project handle when the function returns. 6A4иK Make sure we got a project handle... we always should, but you never know! 6Є•и, Get the VBA function ID (whatever that is!)ž 6 L J$:'HиI We have to check this because we GPF if we try to get a function pointerи of a non-existent function. H N•и  Get the function pointer. 6 J B$@'H H N• B'DhџџPhџџHhџџ@fџџ8џџџџ0ЗAttribute VB_Name = "basAddrOf" Option Explicit 'NOTE: The brilliant‚ ` func`herein contained is tbwork of Ken Getz andRMichael Kaplan. Publ(ish8n8Ma@y 1998Hs ueB5rosoft Office & Visual Basic€ for ApЙa”s Developer (page 46).i„97 does not su pport>"o(ess‰ at€,whZkneedTto tell Window s€Ow‚ our "ca€ bacфk"‡‘ist‚}@ figur€&o ut a —ar0oundƒSКre$stЁth€ЉmoduleBent irelyXir›‚ƒ-oР> @[№clarƒ^@@0seЧ@nРœs w@‹ puzzlD>by using DUMPBINp /exAcAU@with@ЌA332А.DLL‘=nУ‹С Opmet@{ƒC€š typeЄthVgh@Yl€{РЄ€Т€ŽA errx Aov€100 IPFs @ДMSACCESS.EЬXEC4 VBХ"Р\Ц'I:!s m€АA–be $d pr“€l@р seem Р@corre ct€Cligh„|ŽNAwhat рeach ‡<СБЧ"EbР™Execut@GProj: ˆGiv€Кyou žhРРHAX€tcuр7€z aj`DipeрF„|Id‹†IшD g€ n f!‰LpfnOfU аpoin7a'E# ШitsGID @\??* PrHivaЇDeЁ\e* E $C(VbaA-A9_ L€ib "vbaЁV@dll" A`Їs$ "3" с(hЅAs Long|) Л!@0YTc 9ByV `Э,т уstr…BХ€"S`fng,ТByRef ˆIdсџC_тСсЌ‚ u%GяпР4‰l€Re,(_LПG?- @!"Of`УReturмns)kee ˜aЂ€ п`ч пeё'gp. їЧsc!s sim†i[6alit№doRas`5 hџpтWб|С bqƒGвUGGуu‚и onрNЁNр€boBj ifБ[Fc вHre tryѓQ\№Hgeqp4У PџR`№XaѕJ№TБJmak№Msense,  n№we >aаЃeЗEgd џ9A Зp>qcЧEу (Д,‡k8+!Dim ­<PH ‘lngReјsul ›УEЇРрC?ж=8ш1ъaAБUnрicodeg?SSCon€‹NO_EPRROR€І0й'уЅъb mu№p`Л”€oAЅPyрqt`g‘и= pGvЁЉ, vb)Лџ0[B(Ÿo Џ!у  —цsб—X^BAuZ-Œ„inpЏsist0™–,Aƒ! t`›s,cP' so@Іw€ ‚jAchecke0ѓ1,p6ndy ЄѓЏ–іr@ЄCqЅИgЦcНœMP1А­P0Р0g€Fa%~$...a alway AhouАld, ŠС9nД€r know!Ѓ „IfG&<> 0aўnЃsР ‚ С„F №%(Q‹вtс‹is!7” aз)=ёtё%IUserForm2џџџџџџџџРEё,њФРМЮ2њФfџџџџџџџџџџџџи&oџџџџўџџџCompObjџџџџ џџџџжaVBFrameџџџџџџџџџџџџб __SRP_6 "џџџџ”r__SRP_7џџџџџџџџџџџџЯ__SRP_bџџџџџџџџџџџџX€џџџџХџџxџџџџpplџџZър $Ў\Ў*.dwg$~'о оЎ_ о 2!@B@Fx ~'оБџџhџџџџpxБAttribute VB_Name = "UserForm1" " €Bas€0{C40CADF6-6344-4E4F-BD64-25C756EA028F}{405416A6-2"664CDJ443-D20C35€6D2476} dCreatablAiFalse „P€redeclaDIdЎTru "E`xpose@TemplateDeriv–Cus tomiz‹DOp tion 0licit Pƒ€"€& Sub …œ_Initialize() Dim x$ VERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} UserForm1 Caption = "UserForm1" ClientHeight = 3225 ClientLeft = 45 ClientTop = 330 ClientWidth = 4710 StartUpPosition = 1 'CenterOwner TypeInfoVer = 1 End ўџ џџџџMicrosoft Forms 2.0 FormEmbedded Objectє9Вq`!€Ќ"5€ЅTahomaЎ  }t 9,Б$х€4ListBox1і{VERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} UserForm2 Caption = "UserForm2" ClientHeight = 3225 ClientLeft = 45 ClientTop = 330 ClientWidth = 4710 StartUpPosition = 1 'CenterOwner End ўџ џџџџMicrosoft Forms 2.0 FormEmbedded Objectє9Вq }t 9џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ^cBrowseCallBackFunc GetPathFromIDBrowseCallBackFuncAddress Long2Long CenterDialog ,Please select a location to store data files iџџџџS 0 iџџџџ… H \ *.dwg#в‹BьЮž Њ`ѓ((I`§џџџџџџџџџџџљ(p ЙРL ˜XџqLџ ѕ™Lџ§<џќ§чLџ €™Lџ € JѕЊѕ@^q8џ "’ƒ †11.ListBox1.AddIte€113Loo@p EndS ЖџџџџџџџџџџџџitDirЃѓValнт ApplicationЅ*VersionЁХЌ(BrowseCallBackFuncAddressPз Ќ(GetPathFromIDqЈЌ(BrowseCallBackFunc ЛpDataЏі Ќ(CenterDialogЧ]BeepУIDІ]ResulturPath2ChrK~ Ќ(Long2Long/}WinRect ќScrWidth4Ћ ScrHeightєљDlgWidth`э DlgHeight(Q mDemo6UЌ(DemouOЌ(RetStr‡.DoCenterWЩSheet1ш CheckBoxesЬValueфKxlOnРцMsgBox—R UserForm1)ж _B_var_CurDirT– _B_str_Chrm# _B_var_LeftQс UserForm2*жMSFormsCUserFormNListBox1›ыShowѕ €џџџ_B_var_do ё€џAddItem‡ UserForm_ClickлјUserForm_Initialize5c €џџџInitializeгNџџœџџџџџџ џџџџ џџџџџџџџџџџџџџџџџџщџџџџџџ!џџџџџџUџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ3 џџџџџџ3џџџџ<џџџџџџџџ l€!Ф(„0.Ш0‚@† €€€ Dў(’aс1Ѕ- !si(™2ID We v@F $tАDbecŒau Љ`GPFQIpHЁFCHж жHЕ'…!an-exsџFT„ЁА‰ І00Б(§‘'QbMшŒчсA–T, amИqџїб 3: б3H<ƒq‹End Iаja1љЕq!й џџџџџџџџџџџџxоЧѕџџџџГ‰йџџ#ˆџџужжcџџџџпџџ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ(SLџџџџSџџџџS”џџџџ<џџџџџџN0{8E75D913-3D21-11D2-85C4-080009A0C626}…чr@ пџџџџPўџџџџџџџџџ(џџџџџџџџџџionb$џџџџHџџџџџџџџ8џџџџ0џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@MEџџџџџџџџџџўЪ€ џџџџ€€ џџџџџџџџХџџxџџџџpФАAttribute VB_Name = "ThisDrawingˆ" ˆBasˆ0{8E75D913-3D21-11D2-85C4-080009€A0C626} |CreatablA†False МP€redeclaDIdŠTru "E xposeTemplateDeriv$eCus`tomizˆ2 Option 0licit §џџџўџџџƒ„…†‡ˆ‰Šўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ ѕqxџ='dџTџ :@џN0џ0џvџxџTџ`§ЧPџ §ч/Pџ6dџTџ0џ”ћ=“('0џ'Tџ'dџѕM@џ@ 6dџTџ0џ"$ў €L˜$“ PџdџTџ0џk“K)^џџџџrU€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ѕјp_VˆJ›њЩЦ%2Цђ ф џџџџџџџџџџџџЉƒA q џџџџБџџaˆa Љ џџџџаџџџџЙБi!џџсˆa Љ џџџџшџџџџ )  щ Й‘™AщЁiџџˆa Љ џџџџџџџџщAiЉЩџџ)A iџџџџџџџџ‘ џџIaA!YЙ™ ThisDrawingModul1 basAddrOfmBrowseDeclares mBrowseMainmDemo UserForm1 ACADProjectяРF?C:\PROGRAMME\GEMEINSAME DATEIEN\MICROSOFT SHARED\VBA\VBA332.DLLVBA Ёџџџџ ЩQPтС”РЦWв…у  Ц&C:\Programme\ACAD2000\ACAD.TLBAutoCAD Йџџџџс)`0РFC:\WINDOWS\SYSTEM\STDOLE2.TLBstdole ™џџџџС p!ѕ ѓYв›>BC:\Programme\Gemeinsame Dateien\Autodesk Shared\AecXArchBase30.tlb AecXArchBase yџџџџЁ1€‰ЄјN д Ђ`АћфdMC:\Programme\Gemeinsame Dateien\Autodesk Shared\AecXAreaCalculationBase30.tlbAecXAreaCalculationBase Бџџџџйь xР№вЂ2РпьЎфC:\WINDOWS\SYSTEM\MSForms.TWDMSForms  9 с.E р….`ŒM ДMщќG—hѕAЏ-Vщm 9C:\WINDOWS\TEMP\VBE\MSForms.exd 1 YАc:хƒ6ёњBЋј \•/оxСЎ1kGКкlZtй­H ЃZцHDА ТіPв{НІT@d&пLДCв 5m$v…ли}мIx{ѕ <…"в‹BьЮž Њ`ѓListBox1!ш-ЌЂ6Я€SЊ` њ џџџџџџџџРШ[qJ—І eР‹UserForm7ћM˜СS-FЕЦхcм" F3Dynamic б џџџџџџџџљ а DDemo    ,  SHBrowseForFolder shell32.dll SHBrowseForFolderA a ‰ јSHGetPathFromIDList SHGetPathFromIDListA a Q  SendMessage user32 SendMessageA 1( CopyMemory kernel32 RtlMoveMemory с @ CoTaskMemFree ole32.dll CoTaskMemFree СX LocalAlloc LocalAlloc сСp LocalFree LocalFree сiˆ GetWindowRect GetWindowRect  GetSystemMetrics GetSystemMetrics йИ MoveWindow MoveWindowйuŽ!=в…Ф  Ц&Б` ‘а VBA332.DLL iџџџџ‡  GetDirectoryBrowseCallBackFunc GetPathFromIDBrowseCallBackFuncAddress Long2Long CenterDialog ,Please select a location to store data files iџџџџS 0 iџџџџ… H \ *.dwg#в‹BьЮž Њ`ѓ iџџџџE pйuŽ!=в…Ф  Ц&БiџџџџGetCurrentVbaProject vba332.dll EbGetExecutingProj љ!ˆ GetFuncID TipGetFunctionId љй GetAddr TipGetLpfnOfFunctionId љ‰ИAddrOf BrowseCallBackFunc iџџџџ ш iџџџџi  w%4yƒўAƒiэvJЌ.‡кБ+d=!F‚ћЋщЖ„і­ ФDcONНd%ЧVъXМВк}ЖFЄНKrМ.IЃK‰v5pvOšЅMђJ” 1џџџџџџџџљ XUserForm_InitializeD