a „oe¯uã @s"ddlZddlZddlZddlZddlZddlZddlZdejvZzddl m Z dd„Z Wne ytdd„Z Yn0dZ er„dZnd Zejr˜d d „Znd d „Zd d„ZejdkrÄdd„Zdd„Zndd„Zdd„Zdd„Zdd„ZdZd^dd„Zdd„Zd_d d!„Zd"Zd`d#d$„Zd%d&„Zdad'd(„Zd)Zd*d+„Z d,d-„Z!d.d/„Z"dbd0d1„Z#d2d3„Z$d4d5„Z%d6d7„Z&d8Z'dcd9d:„Z(d;d<„Z)d=d>„Z*d?d@„Z+dddAdB„Z,dCZ-dedDdE„Z.dFdG„Z/dfdHdI„Z0dJdK„Z1dLdM„Z2dgdNdO„Z3ed ƒfdPdQ„Z4dedRƒdedSƒfdTdU„Z5dVdW„Z6dhdXdY„Z7GdZd[„d[ƒZ8d\d]„Z9dS)iéNz64 bit)Ú namedtuplecCs&| ¡}t|d|dd…ƒ}||ŽS)Nré)Úsplitr)Ú names_strÚvaluesÚnamesÚnt©r ú:C:\Program Files\Certbot\pkgs\win32\lib\win32gui_struct.pyÚ _MakeResult,sr cCs|S©Nr )rrr r r r 3sÚPPiÚxxxxÚcCs,t|tƒstdƒ‚|d d¡}t d|¡S)Nz!MENUITEMINFO text must be unicodeúúutf-16leÚb)Ú isinstanceÚstrÚ TypeErrorÚencodeÚarray)ÚtextÚdatar r r Ú_make_text_bufferEs rcCs$t|tƒr| d¡}t d|d¡S)NÚmbcsrr)rrrr)rr r r rOs  cCs td|ƒS)Nr)r)Úcchr r r Ú_make_empty_text_bufferVsr)ércCs tt|ƒƒSr )rÚbuffer©Úobr r r Ú _make_memory\sr"cCs|Sr r ©Zsvalr r r Ú _make_bytes_sr$cCs tt|ƒƒSr )ÚbytesÚ memoryviewr r r r r"dscCs | d¡S)NÚascii)rr#r r r r$gscCs(d}t |t |¡¡}tdt ||¡ƒS)Nr zWMNOTIFY hwndFrom idFrom code)Úwin32guiÚ PyGetMemoryÚstructÚcalcsizer Úunpack©ÚlparamÚformatÚbufr r r ÚUnpackWMNOTIFYlsr1cCsBtt}tr|d}n|d}t t |¡|¡}tdt ||¡ƒS)NZ iiiiiiixxxxPZiiiiiiiPzfNMITEMACTIVATE hwndFrom idFrom code iItem iSubItem uNewState uOldState uChanged actionx actiony lParam) Ú _nmhdr_fmtÚ_nmhdr_align_paddingÚis64bitr(Z PyMakeBufferr*r+r r,r-r r r ÚUnpackNMITEMACTIVATErs  þr5Z5i5PiPc Cs¤g} |dus| dusJdƒ‚| dur6ddl} |  d¡|durF| pDd}d} |durXd}n | tjO} |durpd}n | tjO} |durˆd}n | tjO} |dur d}n | tjO} |durÌ|dusÂJdƒ‚d}}n|dusÜJdƒ‚| tjO} |durôd}n | tjO} |du�rd}n | tj O} |du�rT| tj O} t |ƒ} t |ƒ}|   ¡d}|  | ¡nd}d}t tt t¡| |||t|ƒt|ƒt|ƒ|||t|ƒ¡ }t d|¡| fS)Nz:sorry - these were confused - you probably want dwItemDatarz=PackMENUITEMINFO: please use dwItemData instead of dwTypeDataz,neither or both checkmark bmps must be givenr)ÚwarningsÚwarnÚwin32conÚ MIIM_FTYPEÚ MIIM_STATEÚMIIM_IDÚ MIIM_SUBMENUÚMIIM_CHECKMARKSÚ MIIM_DATAÚ MIIM_BITMAPÚ MIIM_STRINGrÚlenÚ buffer_infoÚappendr*ÚpackÚ_menuiteminfo_fmtr+Úintr)ÚfTypeÚfStateÚwIDÚhSubMenuÚ hbmpCheckedÚ hbmpUncheckedÚ dwItemDatarÚhbmpItemZ dwTypeDataÚextrasr6ÚfMaskZstr_bufrÚlptextÚitemr r r ÚPackMENUITEMINFOŠsxÿÿþ              órSc Csît t|¡\ }}}}}}}}} } } } |t|ƒks4J‚|tj@dkrFd}|tj@dkrXd}|tj@dkrjd}|tj@dkr|d}|tj @dkr’d}}|tj @dkr¤d} |tj @dkr¶d} |tj @rÎt  | | ¡} nd} td||||||| | | f ƒS)NrzYMENUITEMINFO fType fState wID hSubMenu hbmpChecked hbmpUnchecked dwItemData text hbmpItem)r*r,rErAr8r9r:r;r<r=r>r?r@r(Ú PyGetStringr )ÚsÚcbrPrGrHrIrJrKrLrMrQrrNrr r r ÚUnpackMENUITEMINFOåsZ ó ÷ýrWécCs¦g}|durr9r;r:r@r<rrCrBr*rDrEr+r©ÚmaskÚ text_buf_sizeÚextraÚ text_bufferÚ text_addrÚ_r0r r r ÚEmptyMENUITEMINFOsNÿþýüûúùÿ  óraZiiiiPiPc Cs¢|durd}n |tjO}|dur&d}n |tjO}|dur>d}n |tjO}|durVd}n |tjO}|durnd}n |tjO}t tt  t¡||||||¡}t   d|¡SrY© r8Ú MIM_STYLEÚ MIM_MAXHEIGHTÚMIM_BACKGROUNDÚ MIM_HELPIDÚ MIM_MENUDATAr*rDÚ _menuinfo_fmtr+r)ÚdwStyleÚcyMaxÚhbrBackÚdwContextHelpIDÚ dwMenuDatarPrRr r r Ú PackMENUINFOGs4     ø rncCs˜t t|¡\}}}}}}}|t|ƒks*J‚|tj@dkrd}t|d| tjƒ\} }t|d| tjƒ\} }t|d| tjƒ\} }t|d| tjƒ\} }t|d| tjƒ\} }|dur´d} } n&t |ƒ} t |ƒ} |  | ¡|   ¡\} } t  t| |||| | ||||¡ }t d|¡|fSrY)rtÚcommctrlÚ TVIF_HANDLEÚ TVIF_STATEÚ TVIF_TEXTÚ TVIF_IMAGEÚTVIF_SELECTEDIMAGEÚ TVIF_CHILDRENÚ TVIF_PARAMrrArCrBr*rDÚ _tvitem_fmtr)ÚhitemÚstateÚ stateMaskrÚimageZselimageZcitemsÚparamr]r[r_Útext_lenr^r`r0r r r ru¿s>    õ ruc Cs–g}|dur6tjtjBtjBtjBtjBtjBtjB}|tj@r`t|ƒ}|  |¡|  ¡\}}nd}}t   t ||dd||dddd¡ }t d|¡|fSrY)ryrzr{r|r}r~rr€rrCrBr*rDr�r)r‚r[r\r]r^r_r`r0r r r Ú EmptyTVITEMãs2ÿþýüûúÿ  ÿrˆc Csªt t|¡\ }}}}}}}}} } |tj@s2d}}|tj@s@d} |tj@sNd}|tj@s\d} |tj@sjd}|tj @s|d}}|rŒt   |¡} nd} t d|||| ||| | fƒS)NzcTVITEM item_hItem item_state item_stateMask text item_image item_selimage item_cChildren item_param) r*r,r�ryr|rr}r€r~r{r(rTr ) rÚ item_maskZ item_hItemÚ item_stateÚitem_stateMaskÚ item_textptrÚ item_cchTextÚ item_imageZ item_selimageZitem_cChildrenÚ item_paramrr r r Ú UnpackTVITEMûsN õ       øýr�c Csˆt t¡}tt}tr |d}n|d}|d||f}t |t |¡¡}t ||¡\}}}}}} t |ƒ} t | ƒ} t d||||| | fƒS)NZixxxxÚiz%ds%dsz2TVNOTIFY hwndFrom id code action item_old item_new) r*r+r�r2r3r4r(r)r,r�r ) r.Ú item_sizer/r0ÚhwndFromÚidÚcodeÚactionZbuf_oldZbuf_newZitem_oldZitem_newr r r ÚUnpackTVNOTIFY-s  þr—c CsTt t¡}d|f}t |t |¡¡}t ||¡\}}}}t|ƒ}td||||fƒS)NzPPi%dsz TVDISPINFO hwndFrom id code item)r*r+r�r(r)r,r�r © r.r’r/r0r“r”r•Zbuf_itemrRr r r ÚUnpackTVDISPINFO?s   r™Z iiiiiPiiPic Csg}d} |durd}|dur d}|dur2d}d}n| tjO} |durH|}|durVd}n | tjO} |durnd}n | tjO} |dur†d}n | tjO} |dur¢d} } n0| tjO} t|ƒ} t|ƒ} | | ¡|   ¡\} } t   t | ||||| | |||¡ }t   d|¡|fSrY)ryÚ LVIF_STATEÚ LVIF_IMAGEÚ LVIF_PARAMÚ LVIF_INDENTÚ LVIF_TEXTrrArCrBr*rDÚ _lvitem_fmtr)rRÚsubItemrƒr„rr…r†Úindentr]r[r_r‡r^r`r0r r r Ú PackLVITEMMsT         õ r¢c Csœt t|¡\ }}}}}}}}} } |tj@s2d}}|tj@s@d}|tj@sNd} |tj@s\d} |tj@snd}}|r~t   |¡} nd} t d||||| || | fƒS)Nz^LVITEM item_item item_subItem item_state item_stateMask text item_image item_param item_indent) r*r,rŸryržr›rœr�ršr(rTr ) rr‰Z item_itemZ item_subItemrŠr‹rŒr�rŽr�Z item_indentrr r r Ú UnpackLVITEM‹sJ õ      øýr£c Cs\t t¡}ttd|f}t |t |¡¡}t ||¡\}}}}t|ƒ}t d||||fƒS)Nz%dsz LVDISPINFO hwndFrom id code item) r*r+rŸr2r3r(r)r,r£r r˜r r r ÚUnpackLVDISPINFO¹s  r¤c Csvttd}tr|d}|d}t |t |¡¡}t ||¡\ }}}}}}} } } } }td||||||| | | | f|f ƒS)NZ7irÚPzPUnpackLVNOTIFY hwndFrom id code item subitem newstate oldstate changed pt lparam) r2r3r4r(r)r*r+r,r ) r.r/r0r“r”r•rRÚsubitemZnewstateZoldstateZchangedZpt_xZpt_yr r r ÚUnpackLVNOTIFYÂs@  ôöýr§c CsŠg}|dur*tjtjBtjBtjBtjB}|tj@rTt|ƒ}| |¡| ¡\}}nd}}t   t |||dd||ddd¡ }t   d|¡|fSrY) ryr›r�ržrœršrrCrBr*rDrŸr) rRr¦r[r\r]r^r_r`r0r r r Ú EmptyLVITEMès>ÿþýüÿ  õ r¨ZiiiPiiiic Csâg}d}t|d|tjƒ\}}t|d|tjƒ\}}t|d|tjƒ\}}t|d|tjƒ\}}t|d|tjƒ\}}t|d|tjƒ\}}|dur’d}} n&t|ƒ} |  | ¡|   ¡\}} t |ƒ} t   t||||| |||¡ } t d| ¡|fSrY)rtryÚLVCF_FMTÚ LVCF_WIDTHÚ LVCF_TEXTÚ LVCF_SUBITEMÚ LVCF_IMAGEÚ LVCF_ORDERrrCrBrAr*rDÚ _lvcolumn_fmtr) ÚfmtÚcxrr r…Úorderr]r[r_r‡r^r`r0r r r Ú PackLVCOLUMN s$   ÿr³c Csžt t|¡\}}}}}}}}|tj@s*d}|tj@s8d}|tj@sJd}}|tj@sXd}|tj@sfd}|tj @std}|r„t   |¡} nd} t d||| |||fƒS)Nz(LVCOLUMN fmt cx text subItem image order) r*r,r¯ryr©rªr«r¬r­r®r(rTr ) r.r[r°r±r_Z text_sizer r…r²rr r r ÚUnpackLVCOLUMN"s,ÿ       þr´c CsŒg}|dur0tjtjBtjBtjBtjBtjB}|tj@rZt|ƒ}| |¡|  ¡\}}nd}}t   t |dd||ddd¡ }t   d|¡|fSrY)ryr©rªr«r¬r­r®rrCrBr*rDr¯rrZr r r Ú EmptyLVCOLUMN>s.ÿþýüûÿ  ÿrµcCs0d}t ||d|dddd¡}t d|¡dfS)NÚiiiiirrr)r*rDr)Úptr/r0r r r Ú PackLVHITTESTVsr¸cCs0d}t ||¡\}}}}}td||f|||fƒS)Nr¶zLVHITTEST pt flags item subitem)r*r,r )r0r/ÚxÚyÚflagsrRr¦r r r ÚUnpackLVHITTEST\s ÿr¼cCsg}d}t|d|tjƒ\}}t|d|tjƒ\}}t|d|tjƒ\}}t|d|tjƒ\}}t|d|tjƒ\}}t|d|tjƒ\}}t|d|tjƒ\}}|dur¦d} } n&t |ƒ} |  | ¡|   ¡\} } t |ƒ} d} t  | ||| || ||||dd¡ }t d|¡|fS)NrZ iiPPiiPiiiir)rtryZ HDI_HEIGHTr«Z HDI_BITMAPZ HDI_FORMATZ HDI_LPARAMZ HDI_IMAGEZ HDI_ORDERrrCrBrAr*rDr)ZcxyrZhbmr°r†r…r²r]r[r_r‡r^r`r/r0r r r Ú PackHDITEMds(   ÿr½cCsZ|tddt|ƒdƒ7}d|}t |¡t|ƒ}||df|}tj|g|¢RŽ|S)NréÚiiir)r$rAr*r+rD)Ú devicetypeÚrest_fmtÚ rest_dataZ extra_datar/Z full_sizerr r r ÚPackDEV_BROADCAST…s rÃzrcCs$ttjdt|ƒt|ƒt|ƒ|f|ƒS)NÚPP16sl)rÃr8ÚDBT_DEVTYP_HANDLErFr")ÚhandleÚ hdevnotifyZguidZ name_offsetrr r r ÚPackDEV_BROADCAST_HANDLE�s ürÈcCsttjd||fƒS)NÚII)rÃr8ÚDBT_DEVTYP_VOLUME)Úunitmaskr»r r r ÚPackDEV_BROADCAST_VOLUMEŸsrÌcCsdtjr$t|tƒstdƒ‚| d¡}nt|tƒr8| d¡}dt|ƒ}tt  |¡ƒ|f}t t j ||ƒS)Nz!Must provide unicode for the namerrz16s%ds) r(ÚUNICODErrrrrAr"Ú pywintypesÚIIDrÃr8ÚDBT_DEVTYP_DEVICEINTERFACE)Ú classguidÚnamerÁrÂr r r Ú!PackDEV_BROADCAST_DEVICEINTERFACE£s     rÓc@seZdZdd„Zdd„ZdS)ÚDEV_BROADCAST_INFOcKs||_|j |¡dSr )rÀÚ__dict__Úupdate)ÚselfrÀÚkwr r r Ú__init__·szDEV_BROADCAST_INFO.__init__cCsdt|jƒS)NzDEV_BROADCAST_INFO:)rrÕ)r×r r r Ú__str__»szDEV_BROADCAST_INFO.__str__N)Ú__name__Ú __module__Ú __qualname__rÙrÚr r r r rÔ¶srÔc Csd|dkr dSd}t |¡}t ||¡}t d|¡\}}}t ||¡}i}} |tjkr¤|d} t | |dt | ¡…¡\} } } | d<| d<} | d<t | d¡| d<n°|tj k�r|d } t | |dt | ¡…¡\} } } } t | d¡| d <t  |t | ¡¡| d <nP|tj k�rF|d } t | |dt | ¡…¡\} } } | d <| d<nt d|fƒ‚t |fi|¤ŽS)Nrr¿rÄrÆrÇZ nameoffsetTZ eventguidZ16srÑrÒrÉrËr»zunknown device type %d)r*r+r(r)r,r8rÅrÎrÏrÐrTrÊÚNotImplementedErrorrÔ) r.Z hdr_formatZhdr_sizeZhdr_bufÚsizeZdevtypeZreservedr0r]r¹r°r`Z guid_bytesr r r ÚUnpackDEV_BROADCASTÀs@     ø " ÿrà) NNNNNNNNNN)NrX)NNNNNr)N)NrX)NNNNNNNN)NrX)NNNNNN)NrX)NNNNNNN)r):rr*ÚsysryrÎr8r(Úversionr4Ú collectionsrr Ú ImportErrorr2r3rÍrrÚ version_infor"r$r1r5rErSrWrarhrnrorpr�rtrxrurˆr�r—r™rŸr¢r£r¤r§r¨r¯r³r´rµr¸r¼r½rÃrÈrÌrÓrÔràr r r r Ús¶       ö [3 ,ú * ! $ 2 ø >. & !   ÿ ! û