a „oe\ã@s†ddlZddlZddlZddlZddlZddlmZmZddlm Z m Z d  ¡Z Gdd„dƒZ Gdd„dƒZd d „Zed kr‚eƒdS) éN)ÚunwrapÚwrap)ÚshellÚshellconznOnNavigationComplete OnNavigationFailed OnNavigationPending OnViewCreatedc@s8eZdZejgZeZdd„Zdd„Z dd„Z dd„Z d S) Ú EventHandlercCstd|ƒdS)NZ OnNavComplete©Úprint©ÚselfÚpidl©r úIC:\Program Files\Certbot\pkgs\win32comext\shell\demos\explorer_browser.pyÚOnNavigationCompletesz!EventHandler.OnNavigationCompletecCstd|ƒdS)NÚOnNavigationFailedrr r r r rszEventHandler.OnNavigationFailedcCstd|ƒdS)NÚOnNavigationPendingrr r r r rsz EventHandler.OnNavigationPendingcCs8td|ƒzt|ƒ}td|ƒWnty2Yn0dS)NÚ OnViewCreatedz)and look - its a Python implemented view!)rrÚ ValueError)r ÚviewZpyviewr r r r s   zEventHandler.OnViewCreatedN) Ú__name__Ú __module__Ú __qualname__rZIID_IExplorerBrowserEventsZ_com_interfaces_ÚIExplorerBrowserEvents_MethodsZ_public_methods_rrrrr r r r rs rc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú MainWindowc Cs¦tj|jtj|jtj|ji}t ¡}t   d¡}|_ d|_ ||_ t |¡}tjtjB}t |d|ddtjtjdd|d¡ |_t tjdtjtj¡}| ttƒƒ¡|_| tj ¡t !|j¡}tj"tj#tj$Bf}| %|j|dtj&f¡t't(j)ƒdkrt *¡ +ddt(j)d¡d} ng} | ,| tj-¡| .tj/¡} z|  0tj1tj1¡} Wn8tj2yz} zt3dƒt3| ƒWYd} ~ n*d} ~ 00t 4| tj5¡} |  6| tj7tj7¡||_8dS)NZtest_explorer_browserzPython IExplorerBrowser demoréézRStrange - failed to get the tree control even though we asked for a EBO_SHOWFRAMES)9Úwin32conZ WM_DESTROYÚ OnDestroyZ WM_COMMANDÚ OnCommandZWM_SIZEÚOnSizeÚwin32guiZWNDCLASSÚwin32apiZGetModuleHandleZ hInstanceZ lpszClassNameZ lpfnWndProcZ RegisterClassZWS_OVERLAPPEDWINDOWZ WS_VISIBLEZ CreateWindowZ CW_USEDEFAULTÚhwndÚ pythoncomZCoCreateInstancerZCLSID_ExplorerBrowserZ CLSCTX_ALLrZIID_IExplorerBrowserZAdviserrÚ event_cookieZ SetOptionsZEBO_SHOWFRAMESZ GetClientRectZFVM_LISTZFWF_AUTOARRANGEZ FWF_NOWEBVIEWZ InitializeZ FVM_DETAILSÚlenÚsysÚargvZSHGetDesktopFolderZParseDisplayNameZBrowseToIDListZ SBSP_ABSOLUTEZQueryInterfaceZIID_IServiceProviderZ QueryServiceZIID_INameSpaceTreeControlZ com_errorrZSHCreateItemFromIDListZIID_IShellItemZ SetItemStateZNSTCIS_SELECTEDÚeb)r Z message_mapZwcZhinstZ classAtomZstyler'ZrectÚflagsr ÚspZtreeÚexcÚsir r r Ú__init__,sfý  õ ü   ÿÿzMainWindow.__init__cCsdS©Nr ©r r!ÚmsgÚwparamÚlparamr r r rxszMainWindow.OnCommandcCs<tdƒ|j |j¡|j ¡d|_tdƒt d¡dS)Nztearing down ExplorerBrowser...zshutting down app...r)rr'ZUnadviser#ZDestroyrZPostQuitMessager.r r r r{s  zMainWindow.OnDestroycCs.t |¡}t |¡}|j ddd||f¡dS)Nr)r ZLOWORDZHIWORDr'ZSetRect)r r!r/r0r1ÚxÚyr r r rƒs  zMainWindow.OnSizeN)rrrr,rrrr r r r r+sLrcCstƒ}t ¡dSr-)rrZ PumpMessages)Úwr r r Úmain‰sr5Ú__main__)r%r"r rrZwin32com.server.utilrrZwin32com.shellrrÚsplitrrrr5rr r r r Ús^