mscomm.cod

来自「一个虚拟串口读取程序」· COD 代码 · 共 1,948 行 · 第 1/5 页

COD
1,948
字号
; File E:\VC++\Visual C++\Microsoft Visual C++ 6.0\WORKS\MSCommV1\mscomm.h
CONST	SEGMENT
?clsid@?1??GetClsid@CMSComm@@QAEABU_GUID@@XZ@4U3@B DD 0648a5600H ; `CMSComm::GetClsid'::`2'::clsid
	DW	02c6eH
	DW	0101bH
	DB	082H
	DB	0b6H
	DB	00H
	DB	00H
	DB	00H
	DB	00H
	DB	00H
	DB	014H
CONST	ENDS
;	COMDAT ?GetClsid@CMSComm@@QAEABU_GUID@@XZ
_TEXT	SEGMENT
_this$ = -4
?GetClsid@CMSComm@@QAEABU_GUID@@XZ PROC NEAR		; CMSComm::GetClsid, COMDAT

; 21   : 	{

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	c7 45 fc cc cc
	cc cc		 mov	 DWORD PTR [ebp-4], -858993460 ; ccccccccH
  0000b	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 22   : 		static CLSID const clsid
; 23   : 			= { 0x648a5600, 0x2c6e, 0x101b, { 0x82, 0xb6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14 } };
; 24   : 		return clsid;

  0000e	b8 00 00 00 00	 mov	 eax, OFFSET FLAT:?clsid@?1??GetClsid@CMSComm@@QAEABU_GUID@@XZ@4U3@B ; `CMSComm::GetClsid'::`2'::clsid

; 25   : 	}

  00013	8b e5		 mov	 esp, ebp
  00015	5d		 pop	 ebp
  00016	c3		 ret	 0
?GetClsid@CMSComm@@QAEABU_GUID@@XZ ENDP			; CMSComm::GetClsid
_TEXT	ENDS
PUBLIC	??1CMSComm@@UAE@XZ				; CMSComm::~CMSComm
;	COMDAT ??_GCMSComm@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8
_this$ = -4
??_GCMSComm@@UAEPAXI@Z PROC NEAR			; CMSComm::`scalar deleting destructor', COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	c7 45 fc cc cc
	cc cc		 mov	 DWORD PTR [ebp-4], -858993460 ; ccccccccH
  0000b	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  0000e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00011	e8 00 00 00 00	 call	 ??1CMSComm@@UAE@XZ	; CMSComm::~CMSComm
  00016	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00019	83 e0 01	 and	 eax, 1
  0001c	85 c0		 test	 eax, eax
  0001e	74 09		 je	 SHORT $L61524
  00020	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00023	51		 push	 ecx
  00024	e8 00 00 00 00	 call	 ??3CObject@@SGXPAX@Z	; CObject::operator delete
$L61524:
  00029	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0002c	83 c4 04	 add	 esp, 4
  0002f	3b ec		 cmp	 ebp, esp
  00031	e8 00 00 00 00	 call	 __chkesp
  00036	8b e5		 mov	 esp, ebp
  00038	5d		 pop	 ebp
  00039	c2 04 00	 ret	 4
??_GCMSComm@@UAEPAXI@Z ENDP				; CMSComm::`scalar deleting destructor'
_TEXT	ENDS
EXTRN	??1CWnd@@UAE@XZ:NEAR				; CWnd::~CWnd
;	COMDAT ??1CMSComm@@UAE@XZ
_TEXT	SEGMENT
_this$ = -4
??1CMSComm@@UAE@XZ PROC NEAR				; CMSComm::~CMSComm, COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	c7 45 fc cc cc
	cc cc		 mov	 DWORD PTR [ebp-4], -858993460 ; ccccccccH
  0000b	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  0000e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00011	e8 00 00 00 00	 call	 ??1CWnd@@UAE@XZ		; CWnd::~CWnd
  00016	83 c4 04	 add	 esp, 4
  00019	3b ec		 cmp	 ebp, esp
  0001b	e8 00 00 00 00	 call	 __chkesp
  00020	8b e5		 mov	 esp, ebp
  00022	5d		 pop	 ebp
  00023	c3		 ret	 0
??1CMSComm@@UAE@XZ ENDP					; CMSComm::~CMSComm
_TEXT	ENDS
EXTRN	__imp_?classCWnd@CWnd@@2UCRuntimeClass@@B:BYTE
_TEXT	SEGMENT
?_GetBaseClass@CMSComm@@KGPAUCRuntimeClass@@XZ PROC NEAR ; CMSComm::_GetBaseClass

; 13   : IMPLEMENT_DYNCREATE(CMSComm, CWnd)

  00083	55		 push	 ebp
  00084	8b ec		 mov	 ebp, esp
  00086	a1 00 00 00 00	 mov	 eax, DWORD PTR __imp_?classCWnd@CWnd@@2UCRuntimeClass@@B
  0008b	5d		 pop	 ebp
  0008c	c3		 ret	 0
?_GetBaseClass@CMSComm@@KGPAUCRuntimeClass@@XZ ENDP	; CMSComm::_GetBaseClass
_this$ = -4
?GetRuntimeClass@CMSComm@@UBEPAUCRuntimeClass@@XZ PROC NEAR ; CMSComm::GetRuntimeClass

; 13   : IMPLEMENT_DYNCREATE(CMSComm, CWnd)

  0008d	55		 push	 ebp
  0008e	8b ec		 mov	 ebp, esp
  00090	51		 push	 ecx
  00091	c7 45 fc cc cc
	cc cc		 mov	 DWORD PTR [ebp-4], -858993460 ; ccccccccH
  00098	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  0009b	b8 00 00 00 00	 mov	 eax, OFFSET FLAT:?classCMSComm@CMSComm@@2UCRuntimeClass@@B ; CMSComm::classCMSComm
  000a0	8b e5		 mov	 esp, ebp
  000a2	5d		 pop	 ebp
  000a3	c3		 ret	 0
?GetRuntimeClass@CMSComm@@UBEPAUCRuntimeClass@@XZ ENDP	; CMSComm::GetRuntimeClass
_TEXT	ENDS
PUBLIC	?SetCDHolding@CMSComm@@QAEXH@Z			; CMSComm::SetCDHolding
EXTRN	?InvokeHelper@CWnd@@QAAXJGGPAXPBEZZ:NEAR	; CWnd::InvokeHelper
_TEXT	SEGMENT
_bNewValue$ = 8
_this$ = -4
?SetCDHolding@CMSComm@@QAEXH@Z PROC NEAR		; CMSComm::SetCDHolding

; 22   : {

  000a4	55		 push	 ebp
  000a5	8b ec		 mov	 ebp, esp
  000a7	51		 push	 ecx
  000a8	c7 45 fc cc cc
	cc cc		 mov	 DWORD PTR [ebp-4], -858993460 ; ccccccccH
  000af	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 23   : 	static BYTE parms[] =
; 24   : 		VTS_BOOL;
; 25   : 	InvokeHelper(0x1, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
; 26   : 		 bNewValue);

  000b2	8b 45 08	 mov	 eax, DWORD PTR _bNewValue$[ebp]
  000b5	50		 push	 eax
  000b6	68 00 00 00 00	 push	 OFFSET FLAT:_?parms@?1??SetCDHolding@CMSComm@@QAEXH@Z@4PAEA
  000bb	6a 00		 push	 0
  000bd	6a 00		 push	 0
  000bf	6a 04		 push	 4
  000c1	6a 01		 push	 1
  000c3	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000c6	51		 push	 ecx
  000c7	e8 00 00 00 00	 call	 ?InvokeHelper@CWnd@@QAAXJGGPAXPBEZZ ; CWnd::InvokeHelper
  000cc	83 c4 1c	 add	 esp, 28			; 0000001cH

; 27   : }

  000cf	83 c4 04	 add	 esp, 4
  000d2	3b ec		 cmp	 ebp, esp
  000d4	e8 00 00 00 00	 call	 __chkesp
  000d9	8b e5		 mov	 esp, ebp
  000db	5d		 pop	 ebp
  000dc	c2 04 00	 ret	 4
?SetCDHolding@CMSComm@@QAEXH@Z ENDP			; CMSComm::SetCDHolding
_TEXT	ENDS
PUBLIC	?GetCDHolding@CMSComm@@QAEHXZ			; CMSComm::GetCDHolding
_TEXT	SEGMENT
_this$ = -8
_result$ = -4
?GetCDHolding@CMSComm@@QAEHXZ PROC NEAR			; CMSComm::GetCDHolding

; 30   : {

  000df	55		 push	 ebp
  000e0	8b ec		 mov	 ebp, esp
  000e2	83 ec 08	 sub	 esp, 8
  000e5	c7 45 f8 cc cc
	cc cc		 mov	 DWORD PTR [ebp-8], -858993460 ; ccccccccH
  000ec	c7 45 fc cc cc
	cc cc		 mov	 DWORD PTR [ebp-4], -858993460 ; ccccccccH
  000f3	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 31   : 	BOOL result;
; 32   : 	InvokeHelper(0x1, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);

  000f6	6a 00		 push	 0
  000f8	8d 45 fc	 lea	 eax, DWORD PTR _result$[ebp]
  000fb	50		 push	 eax
  000fc	6a 0b		 push	 11			; 0000000bH
  000fe	6a 02		 push	 2
  00100	6a 01		 push	 1
  00102	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00105	51		 push	 ecx
  00106	e8 00 00 00 00	 call	 ?InvokeHelper@CWnd@@QAAXJGGPAXPBEZZ ; CWnd::InvokeHelper
  0010b	83 c4 18	 add	 esp, 24			; 00000018H

; 33   : 	return result;

  0010e	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 34   : }

  00111	83 c4 08	 add	 esp, 8
  00114	3b ec		 cmp	 ebp, esp
  00116	e8 00 00 00 00	 call	 __chkesp
  0011b	8b e5		 mov	 esp, ebp
  0011d	5d		 pop	 ebp
  0011e	c3		 ret	 0
?GetCDHolding@CMSComm@@QAEHXZ ENDP			; CMSComm::GetCDHolding
_TEXT	ENDS
PUBLIC	?SetCommID@CMSComm@@QAEXJ@Z			; CMSComm::SetCommID
_TEXT	SEGMENT
_nNewValue$ = 8
_this$ = -4
?SetCommID@CMSComm@@QAEXJ@Z PROC NEAR			; CMSComm::SetCommID

; 37   : {

  0011f	55		 push	 ebp
  00120	8b ec		 mov	 ebp, esp
  00122	51		 push	 ecx
  00123	c7 45 fc cc cc
	cc cc		 mov	 DWORD PTR [ebp-4], -858993460 ; ccccccccH
  0012a	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 38   : 	static BYTE parms[] =
; 39   : 		VTS_I4;
; 40   : 	InvokeHelper(0x3, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
; 41   : 		 nNewValue);

  0012d	8b 45 08	 mov	 eax, DWORD PTR _nNewValue$[ebp]
  00130	50		 push	 eax
  00131	68 00 00 00 00	 push	 OFFSET FLAT:_?parms@?1??SetCommID@CMSComm@@QAEXJ@Z@4PAEA
  00136	6a 00		 push	 0
  00138	6a 00		 push	 0
  0013a	6a 04		 push	 4
  0013c	6a 03		 push	 3
  0013e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00141	51		 push	 ecx
  00142	e8 00 00 00 00	 call	 ?InvokeHelper@CWnd@@QAAXJGGPAXPBEZZ ; CWnd::InvokeHelper
  00147	83 c4 1c	 add	 esp, 28			; 0000001cH

; 42   : }

  0014a	83 c4 04	 add	 esp, 4
  0014d	3b ec		 cmp	 ebp, esp
  0014f	e8 00 00 00 00	 call	 __chkesp
  00154	8b e5		 mov	 esp, ebp
  00156	5d		 pop	 ebp
  00157	c2 04 00	 ret	 4
?SetCommID@CMSComm@@QAEXJ@Z ENDP			; CMSComm::SetCommID
_TEXT	ENDS
PUBLIC	?GetCommID@CMSComm@@QAEJXZ			; CMSComm::GetCommID
_TEXT	SEGMENT
_this$ = -8
_result$ = -4
?GetCommID@CMSComm@@QAEJXZ PROC NEAR			; CMSComm::GetCommID

; 45   : {

  0015a	55		 push	 ebp
  0015b	8b ec		 mov	 ebp, esp
  0015d	83 ec 08	 sub	 esp, 8
  00160	c7 45 f8 cc cc
	cc cc		 mov	 DWORD PTR [ebp-8], -858993460 ; ccccccccH
  00167	c7 45 fc cc cc
	cc cc		 mov	 DWORD PTR [ebp-4], -858993460 ; ccccccccH
  0016e	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 46   : 	long result;
; 47   : 	InvokeHelper(0x3, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);

  00171	6a 00		 push	 0
  00173	8d 45 fc	 lea	 eax, DWORD PTR _result$[ebp]
  00176	50		 push	 eax
  00177	6a 03		 push	 3
  00179	6a 02		 push	 2
  0017b	6a 03		 push	 3
  0017d	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00180	51		 push	 ecx
  00181	e8 00 00 00 00	 call	 ?InvokeHelper@CWnd@@QAAXJGGPAXPBEZZ ; CWnd::InvokeHelper
  00186	83 c4 18	 add	 esp, 24			; 00000018H

; 48   : 	return result;

  00189	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 49   : }

  0018c	83 c4 08	 add	 esp, 8
  0018f	3b ec		 cmp	 ebp, esp
  00191	e8 00 00 00 00	 call	 __chkesp
  00196	8b e5		 mov	 esp, ebp
  00198	5d		 pop	 ebp
  00199	c3		 ret	 0
?GetCommID@CMSComm@@QAEJXZ ENDP				; CMSComm::GetCommID
_TEXT	ENDS
PUBLIC	?SetCommPort@CMSComm@@QAEXF@Z			; CMSComm::SetCommPort
_TEXT	SEGMENT
_nNewValue$ = 8
_this$ = -4
?SetCommPort@CMSComm@@QAEXF@Z PROC NEAR			; CMSComm::SetCommPort

; 52   : {

  0019a	55		 push	 ebp
  0019b	8b ec		 mov	 ebp, esp
  0019d	51		 push	 ecx
  0019e	c7 45 fc cc cc
	cc cc		 mov	 DWORD PTR [ebp-4], -858993460 ; ccccccccH
  001a5	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 53   : 	static BYTE parms[] =
; 54   : 		VTS_I2;
; 55   : 	InvokeHelper(0x4, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
; 56   : 		 nNewValue);

  001a8	0f bf 45 08	 movsx	 eax, WORD PTR _nNewValue$[ebp]
  001ac	50		 push	 eax
  001ad	68 00 00 00 00	 push	 OFFSET FLAT:_?parms@?1??SetCommPort@CMSComm@@QAEXF@Z@4PAEA
  001b2	6a 00		 push	 0
  001b4	6a 00		 push	 0
  001b6	6a 04		 push	 4
  001b8	6a 04		 push	 4
  001ba	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  001bd	51		 push	 ecx
  001be	e8 00 00 00 00	 call	 ?InvokeHelper@CWnd@@QAAXJGGPAXPBEZZ ; CWnd::InvokeHelper
  001c3	83 c4 1c	 add	 esp, 28			; 0000001cH

; 57   : }

  001c6	83 c4 04	 add	 esp, 4
  001c9	3b ec		 cmp	 ebp, esp
  001cb	e8 00 00 00 00	 call	 __chkesp
  001d0	8b e5		 mov	 esp, ebp
  001d2	5d		 pop	 ebp
  001d3	c2 04 00	 ret	 4
?SetCommPort@CMSComm@@QAEXF@Z ENDP			; CMSComm::SetCommPort
_TEXT	ENDS
PUBLIC	?GetCommPort@CMSComm@@QAEFXZ			; CMSComm::GetCommPort
_TEXT	SEGMENT
_this$ = -8
_result$ = -4
?GetCommPort@CMSComm@@QAEFXZ PROC NEAR			; CMSComm::GetCommPort

; 60   : {

  001d6	55		 push	 ebp
  001d7	8b ec		 mov	 ebp, esp
  001d9	83 ec 08	 sub	 esp, 8
  001dc	c7 45 f8 cc cc
	cc cc		 mov	 DWORD PTR [ebp-8], -858993460 ; ccccccccH
  001e3	c7 45 fc cc cc
	cc cc		 mov	 DWORD PTR [ebp-4], -858993460 ; ccccccccH
  001ea	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 61   : 	short result;
; 62   : 	InvokeHelper(0x4, DISPATCH_PROPERTYGET, VT_I2, (void*)&result, NULL);

  001ed	6a 00		 push	 0
  001ef	8d 45 fc	 lea	 eax, DWORD PTR _result$[ebp]
  001f2	50		 push	 eax
  001f3	6a 02		 push	 2
  001f5	6a 02		 push	 2
  001f7	6a 04		 push	 4
  001f9	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  001fc	51		 push	 ecx
  001fd	e8 00 00 00 00	 call	 ?InvokeHelper@CWnd@@QAAXJGGPAXPBEZZ ; CWnd::InvokeHelper
  00202	83 c4 18	 add	 esp, 24			; 00000018H

; 63   : 	return result;

  00205	66 8b 45 fc	 mov	 ax, WORD PTR _result$[ebp]

; 64   : }

  00209	83 c4 08	 add	 esp, 8
  0020c	3b ec		 cmp	 ebp, esp
  0020e	e8 00 00 00 00	 call	 __chkesp
  00213	8b e5		 mov	 esp, ebp
  00215	5d		 pop	 ebp
  00216	c3		 ret	 0
?GetCommPort@CMSComm@@QAEFXZ ENDP			; CMSComm::GetCommPort
_TEXT	ENDS
PUBLIC	?SetCTSHolding@CMSComm@@QAEXH@Z			; CMSComm::SetCTSHolding
_TEXT	SEGMENT
_bNewValue$ = 8
_this$ = -4
?SetCTSHolding@CMSComm@@QAEXH@Z PROC NEAR		; CMSComm::SetCTSHolding

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?