3
M]WY* @ s d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm Z d d lm
Z
d d
lmZ d dlZd dl
mZ d dlmZ d
d Zd ZejZejZejZejZeje ZZej ZZeZeZ dd Z!dd Z"G dd dej#Z$G dd dej#Z%eje%Z&ejZ'ej(j)dZ*e*j+Z+ege+_,ee+_-e*j.Z/eeje$eege/_,ee/_-e*j0Z0eee&ge0_,ee0_-e*j1Z2eje$eeege2_,ee2_-ee2_3e*j4Z5ee&eeeeege5_,ee5_-e*j6Z7ee&eeege7_,ee7_-e*j8Z8ee&eeee ge8_,e
e8_-ej(j)dZ9e9j:Z:e
ge:_,ee:_-e9j;Zd Z?dZ@dZAdZBdZCdZDdZEdZFejGd d!d"d#d$gZHejGd d!d"d#d%d&d'd(gZId)d* ZJd+d, ZKeLd-krx,eMeK D ]\ZNZOZPeQd.jReNeOeP qW dS )/ N)BOOL)HWND)DWORD)WORD)LONG)ULONG)LPCSTR)HKEY)BYTE) ULONG_PTR)list_ports_commonc C s | dkrt j | S )Nr )ctypesWinError)valuefuncZ arguments r (/usr/lib/python3.6/list_ports_windows.pyValidHandle s r c C s
t | S )zGet a buffer for a string)r
)Zlengthr r r byte_buffer. s r c C s8 g }x(| D ] }|dkrP |j t|d@ q
W dj|S )Nr )appendchrjoin)bufferscr r r string3 s
r c @ s4 e Zd Zdefdefdefded fgZdd ZdS ) GUIDData1Data2Data3Data4 c
C sL dj | j| j| jdjdd | jd d D djdd | jdd D S )Nz{{{:08x}-{:04x}-{:04x}-{}-{}}}r c S s g | ]}d j |qS )z{:02x})format).0dr r r
I s z GUID.__str__.. c S s g | ]}d j |qS )z{:02x})r$ )r% r&