windows-devel.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Thu, 17 Mar 2011 12:18:12 +0200
changeset 856 4f14f6abbf77
parent 855 928d26058a00
child 857 97fa4a9e7ed7
permissions -rw-r--r--
Set breakpoint by pattern and/or on specific module.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
155
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
     1
-*- mode: outline -*-
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
     2
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
     3
* Dependency Walker.
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
     4
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
     5
Dependency Walker is a free utility that scans any 32-bit or 64-bit Windows
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
     6
module (exe, dll, ocx, sys, etc.) and builds a hierarchical tree diagram of
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
     7
all dependent modules. For each module found, it lists all the functions that
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
     8
are exported by that module, and which of those functions are actually being
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
     9
called by other modules. Another view displays the minimum set of required
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
    10
files, along with detailed information about each file including a full path
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
    11
to the file, base address, version numbers, machine type, debug information,
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
    12
and more.
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
    13
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
    14
See
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
    15
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
    16
  http://www.dependencywalker.com/
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
    17
452
974dadf565a7 Windows 2000 Resource Kit Tools.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 435
diff changeset
    18
* Windows 2000 Resource Kit Tools.
974dadf565a7 Windows 2000 Resource Kit Tools.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 435
diff changeset
    19
974dadf565a7 Windows 2000 Resource Kit Tools.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 435
diff changeset
    20
  http://support.microsoft.com/kb/927229
974dadf565a7 Windows 2000 Resource Kit Tools.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 435
diff changeset
    21
                Windows 2000 Resource Kit Tools for administrative tasks
974dadf565a7 Windows 2000 Resource Kit Tools.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 435
diff changeset
    22
155
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
    23
* Sysinternals.
e475cd4f789a Merged with conversion from CR/LF to LF.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 143
diff changeset
    24
189
a433d6009641 Move info from windows-devel.txt to process-managment.txt and stat.txt.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 155
diff changeset
    25
TODO
288
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    26
617
fe3e777b47f3 Application verifier.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 487
diff changeset
    27
* Application verifier.
fe3e777b47f3 Application verifier.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 487
diff changeset
    28
fe3e777b47f3 Application verifier.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 487
diff changeset
    29
  http://www.microsoft.com/downloads/en/details.aspx?familyid=c4a25ab9-649d-4a1b-b4a7-c9d8b095df18
fe3e777b47f3 Application verifier.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 487
diff changeset
    30
                download page
fe3e777b47f3 Application verifier.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 487
diff changeset
    31
  http://msdn.microsoft.com/en-us/library/ms220948.aspx
fe3e777b47f3 Application verifier.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 487
diff changeset
    32
                Application Verifier
fe3e777b47f3 Application verifier.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 487
diff changeset
    33
855
928d26058a00 Break on dll load/unload.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 754
diff changeset
    34
* Debugging with windbg.
686
68e738cda3a0 windbg.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 669
diff changeset
    35
68e738cda3a0 windbg.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 669
diff changeset
    36
  http://www.microsoft.com/whdc/devtools/debugging/default.mspx
68e738cda3a0 windbg.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 669
diff changeset
    37
                Download and Install Debugging Tools for Windows
68e738cda3a0 windbg.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 669
diff changeset
    38
  http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
68e738cda3a0 windbg.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 669
diff changeset
    39
                Debugging Tools for Windows 32-bit Version
68e738cda3a0 windbg.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 669
diff changeset
    40
                download page
68e738cda3a0 windbg.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 669
diff changeset
    41
  http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx
68e738cda3a0 windbg.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 669
diff changeset
    42
                Debugging Tools for Windows 64-bit Version
68e738cda3a0 windbg.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 669
diff changeset
    43
                download page
68e738cda3a0 windbg.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 669
diff changeset
    44
855
928d26058a00 Break on dll load/unload.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 754
diff changeset
    45
** Break on dll load/unload.
928d26058a00 Break on dll load/unload.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 754
diff changeset
    46
928d26058a00 Break on dll load/unload.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 754
diff changeset
    47
  sxe ld <module>
928d26058a00 Break on dll load/unload.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 754
diff changeset
    48
  sxe ud <module>
928d26058a00 Break on dll load/unload.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 754
diff changeset
    49
856
4f14f6abbf77 Set breakpoint by pattern and/or on specific module.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 855
diff changeset
    50
** Set breakpoint by pattern and/or on specific module.
4f14f6abbf77 Set breakpoint by pattern and/or on specific module.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 855
diff changeset
    51
4f14f6abbf77 Set breakpoint by pattern and/or on specific module.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 855
diff changeset
    52
  bm <module>!<name>    # set breakpoints on 'module' with name 'name'
4f14f6abbf77 Set breakpoint by pattern and/or on specific module.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 855
diff changeset
    53
  bm *!<prefix>*        # set breakpoints on all names with prefix 'prefix'
4f14f6abbf77 Set breakpoint by pattern and/or on specific module.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 855
diff changeset
    54
  bm <module>!*         # set breakpoints on all names in module 'module'
4f14f6abbf77 Set breakpoint by pattern and/or on specific module.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 855
diff changeset
    55
288
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    56
* Running at startup.
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    57
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    58
  HKCU\Software\Microsoft\Windows\CurrentVersion\Run
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    59
                Launches a program automatically when a particular user logs
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    60
                in. This key is used when you always want to launch a program
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    61
                when a particular user is using a system.
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    62
  HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    63
                Launches a program the next time the user logs in and removes
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    64
                its value entry from the registry. This key is typically used
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    65
                by installation programs.
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    66
  HKLM\Software\Microsoft\Windows\CurrentVersion\Run
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    67
                Launches a program automatically at system startup. This key
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    68
                is used when you always want to launch a program on a
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    69
                particular system.
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    70
  HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    71
                Launches a program the next time the system starts and removes
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    72
                its value entry from the registry. This key is typically used
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    73
                by installation programs.
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    74
  HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    75
                Launches a service (a standard NT service or a background
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    76
                process) automatically at startup. An example of a service is
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    77
                a Web server such as Microsoft Internet Information Server.
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    78
  HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    79
                Launches a service (a standard NT service or a background
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    80
                process) the next time the system is started, then removes its
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    81
                value entry from the registry.
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    82
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    83
Values to registry on Windows XP can be added by:
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    84
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    85
  cmd> reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v run.bat /t REG_SZ /d "path\to\run.bat"
c34bdce72894 Running at startup.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 189
diff changeset
    86
  cmd> reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Run   <-- see what done
338
e70d9e6f07f6 Can I link to MFC statically.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 288
diff changeset
    87
e70d9e6f07f6 Can I link to MFC statically.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 288
diff changeset
    88
* MFC.
e70d9e6f07f6 Can I link to MFC statically.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 288
diff changeset
    89
e70d9e6f07f6 Can I link to MFC statically.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 288
diff changeset
    90
** Can I link to MFC statically.
e70d9e6f07f6 Can I link to MFC statically.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 288
diff changeset
    91
e70d9e6f07f6 Can I link to MFC statically.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 288
diff changeset
    92
Yes.
e70d9e6f07f6 Can I link to MFC statically.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 288
diff changeset
    93
e70d9e6f07f6 Can I link to MFC statically.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 288
diff changeset
    94
  http://msdn.microsoft.com/en-us/library/f22wcbea%28VS.80%29.aspx
343
64bf32279008 Microsoft Visual C++ Redistributable Package.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
    95
64bf32279008 Microsoft Visual C++ Redistributable Package.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
    96
* Microsoft Visual C++ Redistributable Package.
64bf32279008 Microsoft Visual C++ Redistributable Package.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
    97
64bf32279008 Microsoft Visual C++ Redistributable Package.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
    98
  http://www.microsoft.com/downloads/en/confirmation.aspx?familyId=32bc1bee-a3f9-4c13-9c99-220b62a191ee&displayLang=en
64bf32279008 Microsoft Visual C++ Redistributable Package.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
    99
                This package installs runtime components of C Runtime (CRT),
64bf32279008 Microsoft Visual C++ Redistributable Package.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 338
diff changeset
   100
                Standard C++, ATL, MFC, OpenMP and MSDIA libraries.
426
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   101
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   102
* Cabinet file (.cab).
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   103
754
1fed660348c4 Extract content from .cab file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 686
diff changeset
   104
Extract content from .cab file:
1fed660348c4 Extract content from .cab file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 686
diff changeset
   105
1fed660348c4 Extract content from .cab file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 686
diff changeset
   106
  cmd# expand my.cab
1fed660348c4 Extract content from .cab file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 686
diff changeset
   107
426
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   108
  http://support.microsoft.com/kb/198038
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   109
                INFO: Useful Tools for Package and Deployment Issues
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   110
  http://msdn.microsoft.com/en-us/library/aa367841%28VS.85%29.aspx
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   111
                The Makecab.exe utility is included in the Windows SDK
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   112
                Components for Windows Installer Developers.
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   113
  http://web.archive.org/web/20070403215326/http://download.microsoft.com/download/platformsdk/cab/2.0/w98nt42kmexp/en-us/cabsdk.exe
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   114
                download link from web archive
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   115
  http://msdn.microsoft.com/en-us/library/aa370834%28v=VS.85%29.aspx
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   116
                The components of the Windows Installer Software Development
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   117
                Kit are included in the Microsoft Windows Software Development
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   118
                Kit (SDK).
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   119
  http://msdn.microsoft.com/en-us/library/bb417343.aspx
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   120
                Microsoft Cabinet Format
24ede02309c6 About Cabinet file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 343
diff changeset
   121
435
9e0e5abccbe2 Debugging in Internet Explorer.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 426
diff changeset
   122
* Internet Explorer.
9e0e5abccbe2 Debugging in Internet Explorer.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 426
diff changeset
   123
9e0e5abccbe2 Debugging in Internet Explorer.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 426
diff changeset
   124
** Debugging.
9e0e5abccbe2 Debugging in Internet Explorer.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 426
diff changeset
   125
9e0e5abccbe2 Debugging in Internet Explorer.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 426
diff changeset
   126
Install IE 8.0 and press 'F12' key.
9e0e5abccbe2 Debugging in Internet Explorer.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 426
diff changeset
   127
9e0e5abccbe2 Debugging in Internet Explorer.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 426
diff changeset
   128
  http://msdn.microsoft.com/library/dd565626.aspx
9e0e5abccbe2 Debugging in Internet Explorer.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 426
diff changeset
   129
                Developer Tools User Interface Reference
464
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   130
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   131
* Microsoft technologies.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   132
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   133
** COM.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   134
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   135
The family of COM technologies includes COM+, Distributed COM (DCOM) and ActiveX® Controls.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   136
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   137
  http://www.microsoft.com/com/default.mspx
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   138
                home page
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   139
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   140
** OLE.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   141
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   142
OLE (Object Linking and Embedding) allows embedding and linking to documents and other objects.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   143
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   144
OLE 1.0 released in 1990, OLE 2.0 released in 1993, in 1994 OLE custom controls (OCXs) were
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   145
introduced.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   146
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   147
OLE objects and containers are implemented on top of the Component Object Model.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   148
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   149
Next release after 2.0 introdused in 1996 and named as ActiveX.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   150
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   151
  http://en.wikipedia.org/wiki/Object_Linking_and_Embedding
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   152
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   153
** ActiveX.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   154
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   155
Faced with the complexity of OLE 2.0 and with poor support for COM in MFC, Microsoft rationalized
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   156
the specifications to make them simpler, and rebranded the technology as ActiveX in 1996.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   157
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   158
  http://msdn.microsoft.com/en-us/library/aa751968.aspx
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   159
                ActiveX Controls
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   160
  http://en.wikipedia.org/wiki/ActiveX
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   161
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   162
** ATL.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   163
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   164
The Active Template Library (ATL) is a set of template-based C++ classes developed by Microsoft,
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   165
intended to simplify the programming of Component Object Model (COM) objects.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   166
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   167
  http://en.wikipedia.org/wiki/Active_Template_Library
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   168
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   169
** MFC.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   170
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   171
MFC (Microsoft Foundation Classes) is a library that wraps portions of the Windows API in C++
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   172
classes, including functionality that enables them to use a default application framework. Classes
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   173
are defined for many of the handle-managed Windows objects and also for predefined windows and
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   174
common controls.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   175
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   176
A lightweight alternative to MFC is the Windows Template Library (WTL).
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   177
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   178
  http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   179
  http://ru.wikipedia.org/wiki/Microsoft_Foundation_Classes
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   180
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   181
** WTL.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   182
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   183
WTL (Windows Template Library) is a free software, object-oriented C++ template library for Win32
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   184
development.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   185
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   186
WTL provides support for implementing various user interface elements, to MDI, standard and common
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   187
controls, common dialogs, property sheets and pages, GDI objects, and other common UI elements, such
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   188
as scrollable windows, splitter windows, toolbars and command bars.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   189
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   190
Most of the WTL API is a mirror of the standard Win32 calls.
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   191
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   192
  http://sourceforge.net/projects/wtl
0e50011d7d21 Microsoft technologies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 452
diff changeset
   193
  http://en.wikipedia.org/wiki/Windows_Template_Library
487
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   194
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   195
* Windows style variable names.
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   196
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   197
  Prefix   |  Data type
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   198
  ---------+-----------------------------------------
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   199
  b        |  boolean
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   200
  by       |  byte or unsigned char
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   201
  c        |  char
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   202
  cx / cy  |  short used as size
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   203
  dw       |  DWORD, double word or unsigned long
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   204
  fn       |  function
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   205
  h        |  handle
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   206
  i        |  int (integer)
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   207
  l        |  Long
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   208
  n        |  short int
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   209
  p        |  a pointer variable containing the address of a variable
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   210
  s        |  string
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   211
  sz       |  ASCIIZ null-terminated string
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   212
  w        |  WORD unsigned int
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   213
  x, y     |  short used as coordinates
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   214
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   215
  PrefixCategory  | Mean
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   216
  ----------------+----------------
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   217
  CS              | Class style
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   218
  CW              | Create window
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   219
  DT              | Draw text
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   220
  IDC             | Cursor ID
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   221
  IDI             | Icon ID
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   222
  WM              | Window message
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   223
  WS              | Window style
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   224
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   225
  Data type | Meaning
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   226
  ----------+-------------------------------------------------------------------
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   227
  FAR       | Same as far. Identifies an address that originally used the
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   228
            | segment:offset addressing schema. Now FAR simply identifies a
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   229
            | (default) 32-bit address but may be omitted entirely in many cases.
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   230
            |
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   231
  PASCAL    | Same as Pascal. The Pascal convention demanded by Windows
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   232
            | defines the order in which arguments are found in the stack when
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   233
            | passed as calling parameters.
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   234
            |
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   235
  WORD	    | Unsigned integer (16 bits)
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   236
            |
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   237
  UINT      | Unsigned integer, same as WORD
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   238
            |
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   239
  DWORD     | Double word, unsigned long int (32 bits)
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   240
            |
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   241
  LONG      | Signed long integer (32 bits)
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   242
            |
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   243
  LPSTR     | Long (far) pointer to character string
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   244
            |
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   245
  NEAR      | Obsolete, previously identified an address value within a 16KB
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   246
            | memory block.
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   247
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   248
  http://www.tenouk.com/cnotation.html
eb598e0a7bae Windows style variable names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 464
diff changeset
   249
                C/C++ NOTATION STORY