# win.guid 库模块帮助文档

## win 成员列表 <a id="win" href="#win">&#x23;</a>

### win.guid("GUID、CLSID、ProgID等") <a id="win.guid" href="#win.guid">&#x23;</a>
字符串转换为 GUID,  
参数支持ProgID,CLSID,GUID,  
失败返回null空值

### win.guid() <a id="win.guid" href="#win.guid">&#x23;</a>
创建 GUID 结构体,初始化为空值。  

可使用 win.guid.create 函数创建 GUID 结构体并初始化为唯一值。  

返回的 win.guid 对象通过 `++` 或 `+` 操作符连接时会自动转换为字符串。  

win.guid 对象可以使用 tostring 函数转换为大写字符串。  
tostring 参数 @2 指定是否小写,参数@3指定是否添加大括号,  
tostring 参数@2 也可用字符串指定11个数值参数的格式化串,  

[返回对象:winGuidObject](#winGuidObject)

### win.guid(数值,数值,数值,'\x00\x00\x00\x00\x00\x00\x00\x00') <a id="win.guid" href="#win.guid">&#x23;</a>
创建GUID结构体  
参数@4也可以改为包含8个字节数值的数组或者展开为8个数值参数

## win.guid 成员列表 <a id="win.guid" href="#win.guid">&#x23;</a>

### win.guid.create() <a id="win.guid.create" href="#win.guid.create">&#x23;</a>
创建 GUID 结构体并初始化为唯一值。  

[返回对象:winGuidObject](#winGuidObject)

### win.guid.fromString("字符串参数") <a id="win.guid.fromString" href="#win.guid.fromString">&#x23;</a>
字符串转换为 GUID 结构体。  
参数支持 ProgID,CLSID,GUID （32 个 16 进制字符以及可选的 4 个短横线）格式字符串,  
失败返回 null 空值。  

注意 win.guid 对象可以使用 tostring 函数转换为字符串,  
tostring 参数 @1 指定是否小写（或指定格式化字符串）,参数 @2 指定是否添加大括号,  

[返回对象:winGuidObject](#winGuidObject)

### win.guid.fromString() <a id="win.guid.fromString" href="#win.guid.fromString">&#x23;</a>
[返回对象:winGuidObject](#winGuidObject)

### win.guid.toProgId("字符串参数") <a id="win.guid.toProgId" href="#win.guid.toProgId">&#x23;</a>
GUID转换为字符串格式的 ProgId  
失败返回null空值

### win.guid.valid() <a id="win.guid.valid" href="#win.guid.valid">&#x23;</a>
[返回对象:winGuidObject](#winGuidObject)

### win.guid.valid(GUID对象) <a id="win.guid.valid" href="#win.guid.valid">&#x23;</a>
判断是否有效GUID对象,  
如果参数是ProgID,CLSID,GUID,则尝试转换,  
转换成功则返回GUID对象,否则返回空

## winGuidObject 成员列表 <a id="winGuidObject" href="#winGuidObject">&#x23;</a>

### winGuidObject.Data1 <a id="winGuidObject.Data1" href="#winGuidObject.Data1">&#x23;</a>
INT类型

### winGuidObject.Data2 <a id="winGuidObject.Data2" href="#winGuidObject.Data2">&#x23;</a>
WORD类型

### winGuidObject.Data3 <a id="winGuidObject.Data3" href="#winGuidObject.Data3">&#x23;</a>
WORD类型

### winGuidObject.Data4 <a id="winGuidObject.Data4" href="#winGuidObject.Data4">&#x23;</a>
字符串值,也可以指定包含多个字节值的数组

### winGuidObject.create() <a id="winGuidObject.create" href="#winGuidObject.create">&#x23;</a>
初始化为唯一值，返回自身  

[返回对象:winGuidObject](#winGuidObject)

### winGuidObject.fromString("字符串参数") <a id="winGuidObject.fromString" href="#winGuidObject.fromString">&#x23;</a>
字符串转换为 GUID 结构体,返回自身,  
也可以直接写到 win.guid 参数中,  
可使用 tostring 函数将 GUID 结构体重新转换为字符串  
tostring 参数@2指定是否小写,参数@3指定是否添加大括号,  
tostring 参数@2 也可用字符串指定11个数值参数的格式化串  

[返回对象:winGuidObject](#winGuidObject)

### winGuidObject.hex() <a id="winGuidObject.hex" href="#winGuidObject.hex">&#x23;</a>
转换为 16 进制格式字符串。  
可选使用参数 @1 自定义 16 进制前缀字符，默认为空字符串。

### winGuidObject.isNull() <a id="winGuidObject.isNull" href="#winGuidObject.isNull">&#x23;</a>
是否等于GUID_NULL，也就是结构体内存的所有字节值为0

### winGuidObject.toProgId() <a id="winGuidObject.toProgId" href="#winGuidObject.toProgId">&#x23;</a>
CLSID转换为ProgId,返回字符串

### winGuidObject.toString <a id="winGuidObject.toString" href="#winGuidObject.toString">&#x23;</a>
转换为字符串,也支持通过 tostring 自动调用此函数

### winGuidObject.toString("%08X%04X%04X%02X%02X%02X%02X%02X%02X%02X%02X") <a id="winGuidObject.toString" href="#winGuidObject.toString">&#x23;</a>
转换为字符串,自定义 11 个数值参数的格式化串

### winGuidObject.toString("%X") <a id="winGuidObject.toString" href="#winGuidObject.toString">&#x23;</a>
转换为 32 位 16 进制字符串，大写，无短横线。  
参数 %X" 自动转换为 "%08X%04X%04X%02X%02X%02X%02X%02X%02X%02X%02X"。   
也可以写为 `tostring(guid,"%X")` 。

### winGuidObject.toString("%x") <a id="winGuidObject.toString" href="#winGuidObject.toString">&#x23;</a>
转换为 32 位 16 进制字符串，小写，无短横线。  
参数 %x" 自动转换为 "%08x%04x%04x%02x%02x%02x%02x%02x%02x%02x%02x"。  
也可以写为 `tostring(guid,"%x")` 。

### winGuidObject.toString(是否小写,是否添加大括号) <a id="winGuidObject.toString" href="#winGuidObject.toString">&#x23;</a>
转换为字符串,生成格式:  
00000000-0000-0000-0000-000000000000

### winGuidObject.unpack() <a id="winGuidObject.unpack" href="#winGuidObject.unpack">&#x23;</a>
转换并返回 11 个数值
