
    %
i"u                        d dl Z d dlZd dlZd dlmZ d dlZd dlZd dlZd dlZd Z	dej
        v ZdZerdZndZd Zd	 Zd
 Zd ZdZ	 	 	 	 	 	 	 	 	 	 d4dZd Zd5dZdZ	 	 	 	 	 	 d6dZd Zd7dZdZd Zd Zd Zd5dZd Zd Z d Z!dZ"	 	 	 	 	 	 	 	 d8dZ#d Z$d  Z%d! Z&d5d"Z'd#Z(d9d$Z)d% Z*d5d&Z+d' Z,d( Z-	 d:d)Z.d;d+Z/	 	 	 	 d<d.Z0d/ Z1d=d0Z2 G d1 d2          Z3d3 Z4dS )>    N)
namedtuplec                 p    |                                  }t          |d         |dd                    } || S )Nr      )splitr   )	names_strvaluesnamesnts       C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\win32/lib/win32gui_struct.py_MakeResultr   )   s8    OOE	E!HeABBi	(	(B2v;    z64 bitPPixxxx c                     t          | t                    st          d          | dz                       d          }t	          j        d|          S )Nz!MENUITEMINFO text must be unicode utf-16leb)
isinstancestr	TypeErrorencodearray)textdatas     r   _make_text_bufferr   ;   sL    dC   =;<<<4K
++D;sD!!!r   c                 &    t          d| z            S )Nr   )r   )cchs    r   _make_empty_text_bufferr   C   s    TCZ(((r   c                     d}t          j        | t          j        |                    }t	          dt          j        ||                    S )Nr   zWMNOTIFY hwndFrom idFrom code)win32guiPyGetMemorystructcalcsizer   unpacklparamformatbufs      r   UnpackWMNOTIFYr*   H   s@    F

vvv'>'>
?
?C6fc8R8RSSSr   c                     t           t          z   }t          r|dz  }n|dz  }t          j        t          j        |          |           }t          dt          j        ||                    S )NiiiiiiixxxxPiiiiiiiPzfNMITEMACTIVATE hwndFrom idFrom code iItem iSubItem uNewState uOldState uChanged actionx actiony lParam)	
_nmhdr_fmt_nmhdr_align_paddingis64bitr!   PyMakeBufferr#   r$   r   r%   r&   s      r   UnpackNMITEMACTIVATEr2   N   sm    ..F  	. *

 7 7
@
@Cpfc""  r   5i5PiPc
                    g }
||	
J d            |	!dd l }|                    dt          d           ||	pd}d}| d} n|t          j        z  }|d}n|t          j        z  }|d}n|t          j        z  }|d}n|t          j        z  }||
J d            dx}}n|
J d            |t          j        z  }|d}n|t          j	        z  }|d}n|t          j
        z  }|]|t          j        z  }t          |          }t          |          }|                                d         }|
                    |           nd}d}t!          j        t$          t!          j        t$                    || ||t)          |          t)          |          t)          |          |||t)          |                    }t+          j        d|          |
fS )Nz:sorry - these were confused - you probably want dwItemDatar   z=PackMENUITEMINFO: please use dwItemData instead of dwTypeData   )
stacklevelz,neither or both checkmark bmps must be givenr   )warningswarnDeprecationWarning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   hbmpItem
dwTypeDataextrasr7   fMaskstr_bufr   lptextitems                    r   PackMENUITEMINFOrW   f   s.    F!3!3D "4!33 K 	 	
 	
 	

 _1
E}$$~$$
{!!&&$$&T$$$&''mm((*X((())

##%%%%#D))$ii $$&&q)g ;)**HKMH D" ;sD!!6))r   c                 $   t          j        t          |           \  }}}}}}}}}	}
}}|t          |           k    sJ |t          j        z  dk    rd }|t          j        z  dk    rd }|t          j        z  dk    rd }|t          j        z  dk    rd }|t          j	        z  dk    rd x}}|t          j
        z  dk    rd }	|t          j        z  dk    rd }|t          j        z  rt          j        |
|          }nd }t          d|||||||	||f	          S )Nr   zYMENUITEMINFO fType fState wID hSubMenu hbmpChecked hbmpUnchecked dwItemData text hbmpItem)r#   r%   rG   rC   r:   r;   r<   r=   r>   r?   r@   rA   rB   r!   PyGetStringr   )scbrS   rI   rJ   rK   rL   rM   rN   rO   rU   r   rP   r   s                 r   UnpackMENUITEMINFOr\      s_    	'++
Q<<<<x""a''x""a''x1$$x$$))x''1,,&**mx!!Q&&
x##q((x## #FC00	1 
	
  r      c                    g }| gt           j        t           j        z  t           j        z  t           j        z  t           j        z  t           j        z  t           j        z  t           j        z  } | t           j        z  r<t          |          }|
                    |           |                                \  }}ndx}}t          j        t          t          j        t                    | ddddddd||d          }t!          j        d|          |fS Nr   r   )r:   rA   r?   r@   r;   r=   r<   rB   r>   r   rE   rD   r#   rF   rG   r$   r   masktext_buf_sizeextratext_buffer	text_addr_r)   s          r   EmptyMENUITEMINFOrg      s   E| &' ! !" 	
 !" "# #$ 	 h"" &-m<<[!!!"..00	11$%%	M +)**								 C ;sC  %''r   iiiiPiPc           
      b   | d} n|t           j        z  }|d}n|t           j        z  }|d}n|t           j        z  }|d}n|t           j        z  }|d}n|t           j        z  }t          j        t          t          j	        t                    || ||||          }t          j
        d|          S r_   r:   	MIM_STYLEMIM_MAXHEIGHTMIM_BACKGROUND
MIM_HELPIDMIM_MENUDATAr#   rF   _menuinfo_fmtr$   r   )dwStylecyMaxhbrBackdwContextHelpID
dwMenuDatarS   rV   s          r   PackMENUINFOrv   '  s     ##}''(($$

&&;&&	 	D ;sD!!!r   c                 l   t          j        t          |           \  }}}}}}}|t          |           k    sJ |t          j        z  dk    rd }|t          j        z  dk    rd }|t          j        z  dk    rd }|t          j        z  dk    rd }|t          j	        z  dk    rd }t          d|||||f          S )Nr   z9MENUINFO dwStyle cyMax hbrBack dwContextHelpID dwMenuData)r#   r%   rp   rC   r:   rk   rl   rm   rn   ro   r   )rZ   r[   rS   rq   rr   rs   rt   ru   s           r   UnpackMENUINFOrx   Q  s    HNqI IER* Q<<<<x!!Q&&x%%**x&&!++x""a''x$$))
C	%/:>  r   c           
         | @t           j        t           j        z  t           j        z  t           j        z  t           j        z  } t          j        t          t          j	        t                    | ddddd          }t          j
        d|          S r_   rj   )ra   r)   s     r   EmptyMENUINFOrz   f  s    |$%%& !" #	$ 	 +&&						 	C ;sC   r   
iPiiPiiiiPc                 $    | ||fS |||z  }|| fS N )valdefaultra   flags       r   _GetMaskAndValr     s*    
{W}DLDSyr   c                     t          | \  }}|                                }dt          |          z  }t          j        || ||          |fS )NzPP%ds)
PackTVITEMtobytesrC   r#   rF   )parentinsertAftertvitem
tvitem_bufrc   r(   s         r   PackTVINSERTSTRUCTr     sM    "F+J##%%Js:&F;vv{J??FFr   c                    g }d}	t          | d|	t          j                  \  }	} t          |d|	t          j                  \  }	}|	t          j        z  sd}t          |d |	t          j                  \  }	}t          |d|	t          j                  \  }	}t          |d|	t          j                  \  }	}t          |d|	t          j                  \  }	}t          |d|	t          j                  \  }	}|dx}
}nJt          |          }t          |          }|                    |           |                                \  }
}t          j        t          |	| |||
|||||          }t!          j        d|          |fS r_   )r   commctrlTVIF_HANDLE
TVIF_STATE	TVIF_TEXT
TVIF_IMAGETVIF_SELECTEDIMAGETVIF_CHILDREN
TVIF_PARAMr   rC   rE   rD   r#   rF   _tvitem_fmtr   )hitemstate	stateMaskr   imageselimagecitemsparamrc   ra   re   text_lenrd   rf   r)   s                  r   r   r     sr   ED 41EFFKD% 41DEEKD%(%% 	dD(2DEEJD$ 41DEEKD%#Hax7RSSND(!&!T83IJJLD& 41DEEKD%|  	HH'--t99[!!!"..00	1
+ C ;sC  %''r   c                    g }|Zt           j        t           j        z  t           j        z  t           j        z  t           j        z  t           j        z  t           j        z  }|t           j        z  r<t          |          }|	                    |           |
                                \  }}ndx}}t          j        t          || dd||dddd          }t          j        d|          |fS r_   )r   r   r   r   r   r   r   r   r   rE   rD   r#   rF   r   r   )r   ra   rb   rc   rd   re   rf   r)   s           r   EmptyTVITEMr     s    E| !" ! !" )	*
 $% !" 	 h   &-m<<[!!!"..00	11$%%	M
+T5!Q	=!Q1 C ;sC  %''r   c                    t          j        t          |           \
  }}}}}}}}}	}
|t          j        z  sd x}}|t          j        z  sd }	|t          j        z  sd }|t          j        z  sd }
|t          j        z  sd }|t          j	        z  sd x}}|rt          j        |          }nd }t          d|||||||	|
f          S )NzcTVITEM item_hItem item_state item_stateMask text item_image item_selimage item_cChildren item_param)r#   r%   r   r   r   r   r   r   r   r   r!   rY   r   )buffer	item_mask
item_hItem
item_stateitem_stateMaskitem_textptritem_cchText
item_imageitem_selimageitem_cChildren
item_paramr   s               r   UnpackTVITEMr     s    	k6**
 ** +&**|.. ++ 
++ 
33 ++ +&**
^ #L11	B 		
  r   c           	      x   t          j        t                    }t          t          z   }t
          r|dz  }n|dz  }|d||fz  z  }t          j        | t          j        |                    }t          j        ||          \  }}}}}}	t          |          }
t          |	          }t          d|||||
|f          S )Nixxxxiz%ds%dsz2TVNOTIFY hwndFrom id code action item_old item_new)r#   r$   r   r.   r/   r0   r!   r"   r%   r   r   )r'   	item_sizer(   r)   hwndFromidcodeactionbuf_oldbuf_newitem_olditem_news               r   UnpackTVNOTIFYr     s    ,,I..F '#
h)Y///F

vvv'>'>
?
?C39=3M3M0Hb$G$$HG$$H<	2tVXx8  r   c                    t          j        t                    }d|fz  }t          j        | t          j        |                    }t          j        ||          \  }}}}t          |          }t          d||||f          S )NzPPi%dsz TVDISPINFO hwndFrom id code item)r#   r$   r   r!   r"   r%   r   r   	r'   r   r(   r)   r   r   r   buf_itemrV   s	            r   UnpackTVDISPINFOr     s{    ,,I$F

vvv'>'>
?
?C#)=#=#= Hb$!!D9Hb$PT;UVVVr   
iiiiiPiiPic                    g }d}	| d} |d}|d}d}n|	t           j        z  }	||}|d}n|	t           j        z  }	|d}n|	t           j        z  }	|d}n|	t           j        z  }	|dx}
}nY|	t           j        z  }	t          |          }t          |          }|                    |           |	                                \  }
}t          j        t          |	| ||||
||||          }t          j        d|          |fS r_   )r   
LVIF_STATE
LVIF_IMAGE
LVIF_PARAMLVIF_INDENT	LVIF_TEXTr   rC   rE   rD   r#   rF   _lvitem_fmtr   )rV   subItemr   r   r   r   r   indentrc   ra   re   r   rd   rf   r)   s                  r   
PackLVITEMr   -  s>    ED|}		##I}##}##~$$|  	HH""'--t99[!!!"..00	1
+ C ;sC  %''r   c                 `   t          j        t          |           \
  }}}}}}}}}	}
|t          j        z  sd x}}|t          j        z  sd }|t          j        z  sd }	|t          j        z  sd }
|t          j        z  sd x}}|rt          j
        |          }nd }t          d|||||||	|
f          S )Nz^LVITEM item_item item_subItem item_state item_stateMask text item_image item_param item_indent)r#   r%   r   r   r   r   r   r   r   r!   rY   r   )r   r   	item_itemitem_subItemr   r   r   r   r   r   item_indentr   s               r   UnpackLVITEMr   k  s    	k6** ** +&**|++ 
++ 
,, ++ +&**
^ #L11	@ 		
  r   c                 (   t          j        t                    }t          t          z   d|fz  z   }t          j        | t          j        |                    }t          j        ||          \  }}}}t          |          }t          d||||f          S )Nz%dsz LVDISPINFO hwndFrom id code item)
r#   r$   r   r.   r/   r!   r"   r%   r   r   r   s	            r   UnpackLVDISPINFOr     s    ,,I..%9,2FGF

vvv'>'>
?
?C#)=#=#= Hb$!!D9Hb$PT;UVVVr   c                    t           t          z   dz   }t          r|dz  }|dz  }t          j        | t          j        |                    }t          j        ||          \  }}}}}}}	}
}}} t          d|||||||	|
||f| f
          S )N7ir   PzPUnpackLVNOTIFY hwndFrom id code item subitem newstate oldstate changed pt lparam)	r.   r/   r0   r!   r"   r#   r$   r%   r   )r'   r(   r)   r   r   r   rV   subitemnewstateoldstatechangedpt_xpt_ys                r   UnpackLVNOTIFYr     s    ..5F &
cMF

vvv'>'>
?
?C 	fc""
	. 4L	
  r   c                    g }|@t           j        t           j        z  t           j        z  t           j        z  t           j        z  }|t           j        z  r<t          |          }|                    |           |                                \  }}ndx}}t          j
        t          || |dd||ddd          }t          j        d|          |fS r_   )r   r   r   r   r   r   r   rE   rD   r#   rF   r   r   )	rV   r   ra   rb   rc   rd   re   rf   r)   s	            r   EmptyLVITEMr     s    E|"# ! !" !	" 	 h   &-m<<[!!!"..00	11$%%	M
+					 C ;sC  %''r   iiiPiiiic                    g }d}t          | d|t          j                  \  }} t          |d|t          j                  \  }}t          |d |t          j                  \  }}t          |d|t          j                  \  }}t          |d|t          j                  \  }}t          |d|t          j                  \  }}|dx}}	nJt          |          }
|	                    |
           |

                                \  }}t          |          }	t          j        t          || |||	|||	  	        }t          j        d|          |fS r_   )r   r   LVCF_FMT
LVCF_WIDTH	LVCF_TEXTLVCF_SUBITEM
LVCF_IMAGE
LVCF_ORDERr   rE   rD   rC   r#   rF   _lvcolumn_fmtr   )fmtcxr   r   r   orderrc   ra   re   r   rd   rf   r)   s                r   PackLVCOLUMNr     s5   EDsAtX->??ID#b!T8+>??HD"dD(2DEEJD$"7AtX5JKKMD' 41DEEKD% 41DEEKD%|  	HH'--[!!!"..00	1t99
+tS"i7E5 C ;sC  %''r   c           	      v   t          j        t          |           \  }}}}}}}}|t          j        z  sd }|t          j        z  sd }|t          j        z  sd x}}|t          j        z  sd }|t          j        z  sd }|t          j	        z  sd }|rt          j        |          }	nd }	t          d|||	|||f          S )Nz(LVCOLUMN fmt cx text subItem image order)r#   r%   r   r   r   r   r   r   r   r   r!   rY   r   )
r'   ra   r   r   re   	text_sizer   r   r   r   s
             r   UnpackLVCOLUMNr     s    AGvB B>D#r9i% 8$$ 8&& 8%% % $$	I8(( 8&& 8&&  #I..2	b$.  r   c                    g }| Mt           j        t           j        z  t           j        z  t           j        z  t           j        z  t           j        z  } | t           j        z  r<t          |          }|                    |           |	                                \  }}ndx}}t          j        t          | dd||ddd	  	        }t          j        d|          |fS r_   )r   r   r   r   r   r   r   r   rE   rD   r#   rF   r   r   r`   s          r   EmptyLVCOLUMNr     s    E|!" ! #$ !	"
 !" 	 h   &-m<<[!!!"..00	11$%%	M
+mT1aM1aQR
S
SC;sC  %''r   c                 ~    d}t          j        || d         | d         ddd          }t          j        d|          d fS )Niiiiir   r   r   )r#   rF   r   )ptr(   r)   s      r   PackLVHITTESTr   4  s?    F
+fbeRUAq!
4
4C;sC  $&&r   c                 h    d}t          j        ||           \  }}}}}t          d||f|||f          S )Nr   zLVHITTEST pt flags item subitem)r#   r%   r   )r)   r(   xyflagsrV   r   s          r   UnpackLVHITTESTr   :  sG    F!'vs!;!;Aq%w)QFE4+I  r   c                    g }d}t          | d|t          j                  \  }} t          |d |t          j                  \  }}t          |d|t          j                  \  }}t          |d|t          j                  \  }}t          |d|t          j                  \  }}t          |d|t          j                  \  }}t          |d|t          j                  \  }}|dx}	}
nJt          |          }|
                    |           |                                \  }	}t          |          }
d}t          j        ||| |	||
||||dd          }t          j        d|          |fS )Nr   iiPPiiPiiiir   )r   r   
HDI_HEIGHTr   
HDI_BITMAP
HDI_FORMAT
HDI_LPARAM	HDI_IMAGE	HDI_ORDERr   rE   rD   rC   r#   rF   r   )cxyr   hbmr   r   r   r   rc   ra   re   r   rd   rf   r(   r)   s                  r   
PackHDITEMr   B  s]    EDsAtX-@AAID#dD(2DEEJD$sAtX-@AAID#sAtX-@AAID# 41DEEKD% 41CDDKD% 41CDDKD%|  	HH'--[!!!"..00	1t99F
+c9c8S%qRS C ;sC  %''r   r   c                     |ddt          |          dz  z
  z  z  }d|z   }t          j        |          t          |          z   }|| df|z   }t          j        |g|R  |z   S )N       iiir   )rC   r#   r$   rF   )
devicetyperest_fmt	rest_data
extra_datar(   	full_sizer   s          r   PackDEV_BROADCASTr
  c  su     %1s:2233JXF''#j//9Iz1%	1D;v%%%%
22r                      r  c                     t          t          j        dt          |           t          |          t	          t          |                    |f|          S )NPP16sl)r
  r:   DBT_DEVTYP_HANDLErH   bytes
memoryview)handle
hdevnotifyguidname_offsetr   s        r   PackDEV_BROADCAST_HANDLEr  n  sJ     "	Vc*oouZ-=-='>'>L	  r   c                 <    t          t          j        d| |f          S )NII)r
  r:   DBT_DEVTYP_VOLUME)unitmaskr   s     r   PackDEV_BROADCAST_VOLUMEr  }  s    X7%?PQQQr   c                 .   t          |t                    st          d          |                    d          }dt	          |          z  }t          t          t          j        |                               |f}t          t          j        ||          S )Nz!Must provide unicode for the namer   z16s%ds)r   r   r   r   rC   r  r  
pywintypesIIDr
  r:   DBT_DEVTYP_DEVICEINTERFACE)	classguidnamer  r  s       r   !PackDEV_BROADCAST_DEVICEINTERFACEr!    s    dC   =;<<<;;z""D #d))#Hz*.";";<<==tDIX@(IVVVr   c                       e Zd Zd Zd ZdS )DEV_BROADCAST_INFOc                 H    || _         | j                            |           d S r}   )r  __dict__update)selfr  kws      r   __init__zDEV_BROADCAST_INFO.__init__  s%    $R     r   c                 0    dt          | j                  z   S )NzDEV_BROADCAST_INFO:)r   r%  )r'  s    r   __str__zDEV_BROADCAST_INFO.__str__  s    $s4='9'999r   N)__name__
__module____qualname__r)  r+  r~   r   r   r#  r#    s2        ! ! !: : : : :r   r#  c                 "   | dk    rd S d}t          j        |          }t          j        | |          }t          j        d|          \  }}}t          j        | |          }i x}}	|t
          j        k    r_|dz   }
t          j        |
|d t          j        |
                             \  }}}|	d<   |	d<   }|	d<   t          j        |d          |	d<   n/|t
          j	        k    r~|d	z   }
t          j        |
|d t          j        |
                             \  }}}}t          j        |d          |	d
<   t          j
        | t          j        |
          z             |	d<   n|t
          j        k    rA|dz   }
t          j        |
|d t          j        |
                             \  }}}|	d<   |	d<   nP|t
          j        k    r-t          j
        | t          j        |          z             |	d<   nt          d|fz            t          |fi |S )Nr   r  r  r  r  
nameoffsetT	eventguid16sr  r   r  r  r   zunknown device type %d)r#   r$   r!   r"   r%   r:   r  r  r  r  rY   r  DBT_DEVTYP_PORTNotImplementedErrorr#  )r'   
hdr_formathdr_sizehdr_bufsizedevtypereservedr)   rc   r   r   rf   
guid_bytess                r   UnpackDEV_BROADCASTr<    s    {{tJz**H"6844G$mE7;;D'8 
vt
,
,CNEA(,,,8# M#s#9V_S%9%9#9:;;	
hKlOlO#
D99+	H7	7	75 $mC5Kvs7K7K5K1LMM1a#
D99+(&/#2F2F)FGG&			H.	.	.4-3]+vs+++,.
 .
*1a:'

 
H,	,	,(&/*2M2M)MNN&		!":gZ"GHHHg/////r   )
NNNNNNNNNN)Nr]   )NNNNNr   r}   )NNNNNNNN)NNNNNN)NNNNNNN)r   )r   r  r   r  )r   )5r   r#   syscollectionsr   r   r  r:   r!   r   versionr0   r.   r/   r   r   r*   r2   rG   rW   r\   rg   rp   rv   rx   rz   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#  r<  r~   r   r   <module>r@     s  <   



 " " " " " "          ck
!

  "" " ") ) )
T T T  *   	\* \* \* \*~0 0 0f(( (( (( ((X  

'" '" '" '"T  *! ! ! !B   G G G (  (  (H( ( ( (0. . .d  $W W W  

	

;( ;( ;( ;(|* * *\W W W" " "L( ( ( (B ( ( ( (,  8( ( ( (,' ' '   LP( ( ( (B3 3 3 3 		   R R R	W 	W 	W 	W: : : : : : : :)0 )0 )0 )0 )0r   