a „oe4%ã@sDddlZddlZddlZddlZddlZddlmZGdd„deƒZeZ ej ej BZ ej ejBZeejBZeejBZeejBejBejBZeejBejBZejdejdejdejdejd ejd ej d ej!d iZ"ej#Z$Gd d„de$ƒZ%e&dkr@ddl'Z'dZ(ze'j)dZ(Wn Yn0e%e(ƒZ*e +¡r2e* ,¡ne* -e .¡¡dS)éN)Údialogc@seZdZdZdS)ÚTLBrowserExceptionzTypeLib browser internal errorN)Ú__name__Ú __module__Ú __qualname__Ú__doc__©rrú9C:\Program Files\Certbot\pkgs\win32com\client\tlbrowse.pyr srZ EnumerationZRecordZModuleZ InterfaceZDispatchZCoClassZAliasÚUnionc@s’eZdZdZdZdZdZdZd#dd„Zd d „Z d d „Z d d„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„ZdS)$ÚTypeBrowseDialogzBrowse a type libraryièiéiêiëNcCsvt || ¡¡z|r$t |¡|_nd|_Wn$tjyP| d¡d|_Yn0| |j |j ¡| |j |j ¡dS)Nú*The file does not contain type information) ÚTypeBrowseDialog_ParentÚ__init__Ú GetTemplateÚ pythoncomÚ LoadTypeLibÚtlbÚ ole_errorÚ MessageBoxÚ HookCommandÚCmdTypeListboxÚ IDC_TYPELISTÚCmdMemberListboxÚIDC_MEMBERLIST)ÚselfZtypefilerrr r.s   zTypeBrowseDialog.__init__cCsd|_d|_d|_t |¡S©N)rÚtypeinfoÚattrr ÚOnAttachedObjectDeath)rrrr r;sz&TypeBrowseDialog.OnAttachedObjectDeathcCsrt ¡}tjtjB}| |tjd¡| |tjd¡t ¡}| |tjB|  ¡d¡|  |¡|  |j tj¡dS)Nz&Open...z&Closez&File) Úwin32uiZ CreateMenuÚwin32conZ MF_STRINGZ MF_ENABLEDZ AppendMenuZ ID_FILE_OPENZIDCANCELZMF_POPUPZ GetHandleZSetMenurÚ OnFileOpen)rZmenuÚflagsZmainMenurrr Ú _SetupMenuAs  zTypeBrowseDialog._SetupMenucCsvtjtjB}d}t ddd||¡}| ¡tjkrrzt |  ¡¡|_ Wn$tj yh|  d¡d|_ Yn0|  ¡dS)NzkType Libraries (*.tlb, *.olb)|*.tlb;*.olb|OCX Files (*.ocx)|*.ocx|DLL's (*.dll)|*.dll|All Files (*.*)|*.*||ér )r ZOFN_OVERWRITEPROMPTZOFN_FILEMUSTEXISTrZCreateFileDialogÚDoModalZIDOKrrZ GetPathNamerrrÚ _SetupTLB)rÚidÚcodeZ openFlagsZfspecÚdlgrrr r!Ks   zTypeBrowseDialog.OnFileOpencCs¢| ¡| |j¡|_| |j¡|_| |j¡|_| |j¡|_ t j dddf}|j   d|¡t j dddf}|j   d|¡|j dur| dd¡n| ¡t |¡S)NédZItemriZDetailsr$)r#Z GetDlgItemrÚtypelbrÚmemberlbÚ IDC_PARAMLISTÚparamlbÚ IDC_LISTVIEWÚlistviewÚcommctrlZ LVCFMT_LEFTZ InsertColumnrr!r&r Ú OnInitDialog)rZ itemDetailsrrr r2Ws zTypeBrowseDialog.OnInitDialogcCsl|j ¡|j ¡|j ¡d|_d|_|jdur8dS|j ¡}t|ƒD]}|j  |j  |¡d¡qJdS)Nr) r+Ú ResetContentr,r.rrrZGetTypeInfoCountÚrangeÚ AddStringÚGetDocumentation)rÚnÚirrr r&js      zTypeBrowseDialog._SetupTLBcCsV|j ¡d}|D]>}|j |d|d¡}|d}|dur@d}|j |d|¡qdS)Néÿÿÿÿr$rÚ)r0ZDeleteAllItemsZ InsertItemZ SetItemText)rÚitemsÚindexÚitemÚdatarrr Ú_SetListviewTextItemsvs z&TypeBrowseDialog._SetListviewTextItemscCs| ¡| ¡}| |¡dSr)Ú_GetMainInfoTypesÚ_GetMethodInfoTypesr?)rÚinfosrrr ÚSetupAllInfoTypes€sz"TypeBrowseDialog.SetupAllInfoTypesc Cs>|j ¡}|dkrgS|j |¡}dt|jdƒfg}| d|df¡| dt|dƒf¡z| dt|j |¡f¡Wn Yn0|j  |¡}|  ¡}| dt|ƒf¡t |d ƒD]|}|  |¡}|  | |¡¡}| d ¡} |  ¡}|d } |d } | d} | d || | f} |tj@r*| d} | d| f¡q¼|S)NrZGUIDz Help Fileéú Help Contextéz Type KindZ Attributesér9éé z+, Flags=0x%x, typeKind=0x%x, typeFlags=0x%xz(Source)Z Implements)r+Ú GetCurSelrr6ÚstrrÚappendÚ typekindmapZGetTypeInfoTypeÚ GetTypeInfoÚ GetTypeAttrr4ZGetImplTypeFlagsZGetRefTypeInfoZGetRefTypeOfImplTyperZIMPLTYPEFLAG_FSOURCE) rÚposÚdocinforBÚinforÚjr"ZrefInfoÚdocZtypeKindZ typeFlagsZdescrrr r@„s>     ý z"TypeBrowseDialog._GetMainInfoTypescCsœ|j ¡}|dkrgS| |¡\}}g}|rT|j |¡}|d}| dt|ƒf¡n|j |¡d}|j |¡}| d|df¡| dt|dƒf¡|S)Nrz Func Descz Help Stringr$rErF) r,rJÚ_GetRealMemberPosrÚ GetFuncDescrLrKÚ GetVarDescr6)rrPÚrealPosÚisMethodÚretZfuncDescr'rQrrr rA©s   z$TypeBrowseDialog._GetMethodInfoTypescCsÈ|tjkrÄ|j ¡}|dkrÀ|j ¡|j |¡|_|j  ¡|_ t |j dƒD],}|j  |¡d}|j  |j |¡d¡qNt |j dƒD],}|j |¡d}|j  |j |¡d¡qŠ| ¡dSdS)Nréér$)r Ú LBN_SELCHANGEr+rJr,r3rrNrrOrr4rWr5ÚGetNamesrVrC)rr'r(rPr8rrr r¼s    zTypeBrowseDialog.CmdTypeListboxcCsF|j ¡}||jdkr*||jddfS|dkr:|dfStdƒ‚dS)Nr[r$rzThe position is not valid)r,rJrÚerror)rrPrrr rUÌs  z"TypeBrowseDialog._GetRealMemberPoscCs†|tjkr‚|j ¡|j ¡}| |¡\}}|rv|j |¡d}|j  |¡}t t |ƒƒD]}|dkrX|j  ||¡qX|  ¡dSdS)Nrr$)r r]r.r3r,rJrUrrVr^r4Úlenr5rC)rr'r(rPrXrYÚnamesr8rrr rÕs    z!TypeBrowseDialog.CmdMemberListboxcCsd}d}ttjBtjBtjB}ddd||f|ddgg}| ddd d ttjBg¡| d d|jd t g¡| dd d dttjBg¡| d d|j dt g¡| ddd dttjBg¡| d d|j dt g¡tt j Bt jBt jBtjBtjB}| dd|jd|g¡|S)z.Return the template used to create this dialogiéÀzType Library BrowserrN)rGZHelvé‚z&Typer9)é rdé>é éƒ)rdééPriz&Members)r*rdrerf)r*rhririz &Parameters)é¾rdrerf)rjrhéKriZ SysListView32r:)rdénéÿéA)Ú FRAMEDLG_STDr Ú WS_VISIBLEZ DS_SETFONTZWS_MINIMIZEBOXrLÚSS_STDZSS_LEFTrÚLBS_STDrr-r1Z LVS_REPORTZLVS_AUTOARRANGEZ LVS_ALIGNLEFTÚ WS_BORDERÚ WS_TABSTOPr/)rÚwÚhZstyleÚtemplateZlvStylerrr rãsLÿþýÿÿÿÿÿþýüûÿÿzTypeBrowseDialog.GetTemplate)N)rrrrrrr-r/rrr#r!r2r&r?rCr@rArrUrrrrrr r &s&     % r Ú__main__r$)/r1rZwin32apir rZ pywin.mfcrÚ Exceptionrr_Z WS_CAPTIONZ WS_SYSMENUroZWS_CHILDrprqrtZBS_STDrsZES_STDZ LBS_NOTIFYZLBS_NOINTEGRALHEIGHTZ WS_VSCROLLrrZCBS_NOINTEGRALHEIGHTZCBS_STDZ TKIND_ENUMZ TKIND_RECORDZ TKIND_MODULEZTKIND_INTERFACEZTKIND_DISPATCHZ TKIND_COCLASSZ TKIND_ALIASZ TKIND_UNIONrMZDialogr r rÚsysÚfnameÚargvr)ZGetConsoleTitler%Z CreateWindowZ GetMainFramerrrr ÚsJ     ÿø f