a oeu @s"ddlZddlZddlZddlZddlZddlZddlZdejvZzddl m Z ddZ Wne ytddZ Yn0dZ erdZnd Zejrd d Znd d Zd dZejdkrddZddZnddZddZddZddZdZd^ddZddZd_d d!Zd"Zd`d#d$Zd%d&Zdad'd(Zd)Zd*d+Z d,d-Z!d.d/Z"dbd0d1Z#d2d3Z$d4d5Z%d6d7Z&d8Z'dcd9d:Z(d;d<Z)d=d>Z*d?d@Z+dddAdBZ,dCZ-dedDdEZ.dFdGZ/dfdHdIZ0dJdKZ1dLdMZ2dgdNdOZ3ed fdPdQZ4dedRdedSfdTdUZ5dVdWZ6dhdXdYZ7GdZd[d[Z8d\d]Z9dS)iNz64 bit) namedtuplecCs&|}t|d|dd}||S)Nr)splitr) names_strvaluesnamesntr :C:\Program Files\Certbot\pkgs\win32\lib\win32gui_struct.py _MakeResult,sr cCs|SNr )rrr r r r 3sPPixxxxcCs,t|tstd|dd}td|S)Nz!MENUITEMINFO text must be unicodeutf-16leb) isinstancestr TypeErrorencodearray)textdatar r r _make_text_bufferEs rcCs$t|tr|d}td|dS)Nmbcsrr)rrrr)rr r r rOs  cCs td|S)Nr)r)cchr r r _make_empty_text_bufferVsr)rcCs tt|Sr )rbufferobr r r _make_memory\sr"cCs|Sr r Zsvalr r r _make_bytes_sr$cCs tt|Sr )bytes memoryviewr r r r r"dscCs |dS)Nascii)rr#r r r r$gscCs(d}t|t|}tdt||S)Nr zWMNOTIFY hwndFrom idFrom code)win32gui PyGetMemorystructcalcsizer unpacklparamformatbufr r r UnpackWMNOTIFYlsr1cCsBtt}tr|d}n|d}tt||}tdt||S)NZ iiiiiiixxxxPZiiiiiiiPzfNMITEMACTIVATE hwndFrom idFrom code iItem iSubItem uNewState uOldState uChanged actionx actiony lParam) _nmhdr_fmt_nmhdr_align_paddingis64bitr(Z PyMakeBufferr*r+r r,r-r r r UnpackNMITEMACTIVATErs  r5Z5i5PiPc Csg} |dus| dusJd| dur6ddl} | d|durF| pDd}d} |durXd}n | tjO} |durpd}n | tjO} |durd}n | tjO} |durd}n | tjO} |dur|dusJdd}}n|dusJd| tjO} |durd}n | tjO} |durd}n | tj O} |durT| tj O} t |} t |}| d}| | nd}d}tttt| |||t|t|t||||t| }td|| 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)warningswarnwin32con MIIM_FTYPE MIIM_STATEMIIM_ID MIIM_SUBMENUMIIM_CHECKMARKS MIIM_DATA MIIM_BITMAP MIIM_STRINGrlen buffer_infoappendr*pack_menuiteminfo_fmtr+intr)fTypefStatewIDhSubMenu hbmpChecked hbmpUnchecked dwItemDatarhbmpItemZ dwTypeDataextrasr6fMaskZstr_bufrlptextitemr r r PackMENUITEMINFOsx              rSc Cstt|\ }}}}}}}}} } } } |t|ks4J|tj@dkrFd}|tj@dkrXd}|tj@dkrjd}|tj@dkr|d}|tj @dkrd}}|tj @dkrd} |tj @dkrd} |tj @rt | | } 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 )scbrPrGrHrIrJrKrLrMrQrrNrr r r UnpackMENUITEMINFOsZ  rWcCsg}|durr9r;r:r@r<rrCrBr*rDrEr+rmask text_buf_sizeextra 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}ttt t||||||}t d|SrY r8 MIM_STYLE MIM_MAXHEIGHTMIM_BACKGROUND MIM_HELPID MIM_MENUDATAr*rD _menuinfo_fmtr+r)dwStylecyMaxhbrBackdwContextHelpID dwMenuDatarPrRr r r PackMENUINFOGs4      rncCstt|\}}}}}}}|t|ks*J|tj@dkrd}t|d| tj\} }t|d| tj\} }t|d| tj\} }t|d| tj\} }t|d| tj\} }|durd} } n&t |} t |} | | | \} } t t| |||| | |||| }td||fSrY)rtcommctrl TVIF_HANDLE TVIF_STATE TVIF_TEXT TVIF_IMAGETVIF_SELECTEDIMAGE TVIF_CHILDREN TVIF_PARAMrrArCrBr*rD _tvitem_fmtr)hitemstate stateMaskrimageZselimageZcitemsparamr]r[r_text_lenr^r`r0r r r rus>     ruc Csg}|dur6tjtjBtjBtjBtjBtjBtjB}|tj@r`t|}| || \}}nd}}t t ||dd||dddd }td||fSrY)ryrzr{r|r}r~rrrrCrBr*rDrr)rr[r\r]r^r_r`r0r r r EmptyTVITEMs2  rc Cstt|\ }}}}}}}}} } |tj@s2d}}|tj@s@d} |tj@sNd}|tj@s\d} |tj@sjd}|tj @s|d}}|rt |} nd} t d|||| ||| | fS)NzcTVITEM item_hItem item_state item_stateMask text item_image item_selimage item_cChildren item_param) r*r,rryr|rr}rr~r{r(rTr ) r item_maskZ item_hItem item_stateitem_stateMask item_textptr item_cchText item_imageZ item_selimageZitem_cChildren item_paramrr r r UnpackTVITEMsN        rc Cstt}tt}tr |d}n|d}|d||f}t|t|}t||\}}}}}} t |} t | } t d||||| | fS)NZixxxxiz%ds%dsz2TVNOTIFY hwndFrom id code action item_old item_new) r*r+rr2r3r4r(r)r,rr ) r. item_sizer/r0hwndFromidcodeactionZbuf_oldZbuf_newZitem_oldZitem_newr r r UnpackTVNOTIFY-s  rc CsTtt}d|f}t|t|}t||\}}}}t|}td||||fS)NzPPi%dsz TVDISPINFO hwndFrom id code item)r*r+rr(r)r,rr r.rr/r0rrrZbuf_itemrRr r r UnpackTVDISPINFO?s   rZ iiiiiPiiPic Csg}d} |durd}|dur d}|dur2d}d}n| tjO} |durH|}|durVd}n | tjO} |durnd}n | tjO} |durd}n | tjO} |durd} } n0| tjO} t|} t|} || | \} } t t | ||||| | ||| }t d||fSrY)ry LVIF_STATE LVIF_IMAGE LVIF_PARAM LVIF_INDENT LVIF_TEXTrrArCrBr*rD _lvitem_fmtr)rRsubItemrrrrrindentr]r[r_rr^r`r0r r r PackLVITEMMsT          rc Cstt|\ }}}}}}}}} } |tj@s2d}}|tj@s@d}|tj@sNd} |tj@s\d} |tj@snd}}|r~t |} nd} t d||||| || | fS)Nz^LVITEM item_item item_subItem item_state item_stateMask text item_image item_param item_indent) r*r,rryrrrrrr(rTr ) rrZ item_itemZ item_subItemrrrrrrZ item_indentrr r r UnpackLVITEMsJ       rc Cs\tt}ttd|f}t|t|}t||\}}}}t|}t d||||fS)Nz%dsz LVDISPINFO hwndFrom id code item) r*r+rr2r3r(r)r,rr rr r r UnpackLVDISPINFOs  rc Csvttd}tr|d}|d}t|t|}t||\ }}}}}}} } } } }td||||||| | | | f|f S)NZ7irPzPUnpackLVNOTIFY hwndFrom id code item subitem newstate oldstate changed pt lparam) r2r3r4r(r)r*r+r,r ) r.r/r0rrrrRsubitemZnewstateZoldstateZchangedZpt_xZpt_yr r r UnpackLVNOTIFYs@  rc Csg}|dur*tjtjBtjBtjBtjB}|tj@rTt|}|||\}}nd}}t t |||dd||ddd }t d||fSrY) ryrrrrrrrCrBr*rDrr) rRrr[r\r]r^r_r`r0r r r EmptyLVITEMs>   rZiiiPiiiic Csg}d}t|d|tj\}}t|d|tj\}}t|d|tj\}}t|d|tj\}}t|d|tj\}}t|d|tj\}}|durd}} n&t|} | | | \}} t |} t t||||| ||| } td| |fSrY)rtryLVCF_FMT LVCF_WIDTH LVCF_TEXT LVCF_SUBITEM LVCF_IMAGE LVCF_ORDERrrCrBrAr*rD _lvcolumn_fmtr) fmtcxrrrorderr]r[r_rr^r`r0r r r PackLVCOLUMN s$   rc Cstt|\}}}}}}}}|tj@s*d}|tj@s8d}|tj@sJd}}|tj@sXd}|tj@sfd}|tj @std}|rt |} nd} t d||| |||fS)Nz(LVCOLUMN fmt cx text subItem image order) r*r,rryrrrrrrr(rTr ) r.r[rrr_Z text_sizerrrrr r r UnpackLVCOLUMN"s,       rc Csg}|dur0tjtjBtjBtjBtjBtjB}|tj@rZt|}||| \}}nd}}t t |dd||ddd }t d||fSrY)ryrrrrrrrrCrBr*rDrrrZr r r EmptyLVCOLUMN>s.  rcCs0d}t||d|dddd}td|dfS)Niiiiirrr)r*rDr)ptr/r0r r r PackLVHITTESTVsrcCs0d}t||\}}}}}td||f|||fS)NrzLVHITTEST pt flags item subitem)r*r,r )r0r/xyflagsrRrr r r UnpackLVHITTEST\s rcCsg}d}t|d|tj\}}t|d|tj\}}t|d|tj\}}t|d|tj\}}t|d|tj\}}t|d|tj\}}t|d|tj\}}|durd} } n&t |} | | | \} } t |} d} t | ||| || ||||dd }td||fS)NrZ iiPPiiPiiiir)rtryZ HDI_HEIGHTrZ HDI_BITMAPZ HDI_FORMATZ HDI_LPARAMZ HDI_IMAGEZ HDI_ORDERrrCrBrAr*rDr)ZcxyrZhbmrrrrr]r[r_rr^r`r/r0r r r PackHDITEMds(   rcCsZ|tddt|d7}d|}t|t|}||df|}tj|g|R|S)Nriiir)r$rAr*r+rD) devicetyperest_fmt rest_dataZ extra_datar/Z full_sizerr r r PackDEV_BROADCASTs rzrcCs$ttjdt|t|t||f|S)NPP16sl)rr8DBT_DEVTYP_HANDLErFr")handle hdevnotifyZguidZ name_offsetrr r r PackDEV_BROADCAST_HANDLEs rcCsttjd||fS)NII)rr8DBT_DEVTYP_VOLUME)unitmaskrr r r PackDEV_BROADCAST_VOLUMEsrcCsdtjr$t|tstd|d}nt|tr8|d}dt|}tt ||f}t t j ||S)Nz!Must provide unicode for the namerrz16s%ds) r(UNICODErrrrrAr" pywintypesIIDrr8DBT_DEVTYP_DEVICEINTERFACE) classguidnamerrr r r !PackDEV_BROADCAST_DEVICEINTERFACEs     rc@seZdZddZddZdS)DEV_BROADCAST_INFOcKs||_|j|dSr )r__dict__update)selfrkwr r r __init__szDEV_BROADCAST_INFO.__init__cCsdt|jS)NzDEV_BROADCAST_INFO:)rr)rr r r __str__szDEV_BROADCAST_INFO.__str__N)__name__ __module__ __qualname__rrr r r r rsrc Csd|dkr dSd}t|}t||}td|\}}}t||}i}} |tjkr|d} t| |dt| \} } } | d<| d<} | d<t| d| d<n|tj kr|d } t| |dt| \} } } } t| d| d <t |t| | d <nP|tj krF|d } t| |dt| \} } } | d <| d<nt d|ft |fi|S)NrrrrrZ nameoffsetTZ eventguidZ16srrrrrzunknown device type %d)r*r+r(r)r,r8rrrrrTrNotImplementedErrorr) r.Z hdr_formatZhdr_sizeZhdr_bufsizeZdevtypeZreservedr0r]rrr`Z guid_bytesr r r UnpackDEV_BROADCASTs@      " r) NNNNNNNNNN)NrX)NNNNNr)N)NrX)NNNNNNNN)NrX)NNNNNN)NrX)NNNNNNN)r):rr*sysryrr8r(versionr4 collectionsrr ImportErrorr2r3rrr version_infor"r$r1r5rErSrWrarhrnrorprrtrxrurrrrrrrrrrrrrrrrrrrrrrrr r r r s        [3 , * ! $ 2  >. & !   !