Foreword |
|
xi | |
Preface |
|
xiii | |
|
|
1 | (8) |
|
Windows 2000 Operating System Architecture |
|
|
3 | (6) |
|
|
3 | (2) |
|
|
5 | (1) |
|
Local Procedure Call Facility |
|
|
5 | (4) |
|
Processes, Threads, and Jobs in Windows 2000 |
|
|
9 | (38) |
|
|
11 | (5) |
|
|
11 | (1) |
|
Creating and Terminating Processes |
|
|
11 | (5) |
|
|
16 | (31) |
|
Process Use of Mutexes, Semaphores, and Events |
|
|
17 | (1) |
|
Process Security and Access Rights |
|
|
18 | (1) |
|
|
19 | (1) |
|
Creating and Terminating Threads |
|
|
19 | (3) |
|
|
22 | (1) |
|
Suspending Thread Execution |
|
|
23 | (1) |
|
Thread Stack Size and Thread Local Storage |
|
|
23 | (4) |
|
|
27 | (1) |
|
Mutex and Semaphore Creation |
|
|
28 | (1) |
|
Acquiring Mutexes, Semaphores, and Releasing |
|
|
29 | (1) |
|
|
30 | (1) |
|
|
31 | (1) |
|
|
32 | (3) |
|
|
35 | (1) |
|
|
36 | (1) |
|
Thread Security and Access Rights |
|
|
37 | (1) |
|
|
38 | (1) |
|
Creating, Opening, and Terminating Jobs |
|
|
39 | (2) |
|
Acquiring Job Status Information |
|
|
41 | (2) |
|
|
43 | (1) |
|
I/O Completion Port and Job Notification |
|
|
44 | (1) |
|
|
45 | (2) |
|
|
47 | (46) |
|
|
47 | (5) |
|
.NET Framework Base Classes |
|
|
52 | (9) |
|
|
55 | (1) |
|
|
56 | (1) |
|
|
56 | (2) |
|
|
58 | (1) |
|
|
59 | (1) |
|
|
60 | (1) |
|
|
61 | (28) |
|
|
63 | (1) |
|
Microsoft Intermediate Language (MSIL) |
|
|
64 | (1) |
|
|
64 | (1) |
|
|
65 | (1) |
|
|
66 | (1) |
|
Versioning and DLL Conflicts |
|
|
66 | (1) |
|
|
67 | (1) |
|
|
67 | (1) |
|
The Minimum You Need to Know About Assemblies |
|
|
67 | (1) |
|
|
68 | (2) |
|
Assembly Custom Attributes |
|
|
70 | (1) |
|
|
71 | (1) |
|
|
72 | (1) |
|
|
72 | (1) |
|
|
73 | (1) |
|
|
74 | (1) |
|
How to Assign and Reference a Shared Name |
|
|
74 | (1) |
|
Assemblies and Security Consideration |
|
|
75 | (1) |
|
Assemblies and Versioning |
|
|
76 | (1) |
|
How the Runtime Locates Assemblies |
|
|
77 | (1) |
|
Step 1: Initiating the Bind |
|
|
77 | (1) |
|
Step 2: Version Policy in the Application Configuration |
|
|
77 | (2) |
|
Step 3: Locating the Assembly Through Codebases or Probing |
|
|
79 | (1) |
|
Locating the Assembly Through Codebases |
|
|
79 | (1) |
|
Locating the Assembly Through Probing |
|
|
79 | (2) |
|
|
81 | (1) |
|
|
81 | (1) |
|
Step 4: The Global Assembly Cache and Auto-QFE Policy |
|
|
81 | (1) |
|
Step 5: Administrator Policy |
|
|
82 | (1) |
|
Partially Specified References |
|
|
82 | (1) |
|
How the Runtime Determines Type Identity |
|
|
83 | (1) |
|
|
83 | (1) |
|
How the Runtime Uses Assembly Version Information |
|
|
83 | (1) |
|
An Assembly's Informational Version |
|
|
84 | (1) |
|
Specifying Version Policies in Configuration Files |
|
|
85 | (1) |
|
|
85 | (1) |
|
Bind to a Specific Version |
|
|
86 | (1) |
|
Don't Accept Implicit QFEs |
|
|
86 | (1) |
|
|
87 | (1) |
|
|
87 | (2) |
|
|
89 | (1) |
|
Metadata and Self-Describing Components |
|
|
89 | (4) |
|
|
89 | (1) |
|
Description of PE or Assembly |
|
|
90 | (1) |
|
|
90 | (1) |
|
|
90 | (1) |
|
|
90 | (3) |
|
|
93 | (34) |
|
|
93 | (3) |
|
|
94 | (1) |
|
Managed Code and Targeting the .NET Framework |
|
|
94 | (1) |
|
Programming in Native Code |
|
|
95 | (1) |
|
|
95 | (1) |
|
|
95 | (1) |
|
|
96 | (1) |
|
Event Handling in Visual C++ |
|
|
96 | (1) |
|
|
96 | (3) |
|
What's Included in the Visual C++ Standard Edtion |
|
|
97 | (1) |
|
What's Included in the Visual C++ Professional Edition |
|
|
98 | (1) |
|
|
98 | (1) |
|
|
98 | (1) |
|
|
98 | (1) |
|
|
98 | (1) |
|
|
98 | (1) |
|
|
99 | (1) |
|
What's Included in the Visual C++ Enterprise Edition |
|
|
99 | (1) |
|
Programming with Managed Extensions for C++ |
|
|
99 | (28) |
|
When to Use Managed Extensions for C++ |
|
|
100 | (1) |
|
Introduction to Managed Extension for C++ |
|
|
101 | (1) |
|
|
101 | (2) |
|
Garbage-Collected Classes |
|
|
103 | (1) |
|
Destroying a Garbage-Collected Class |
|
|
103 | (1) |
|
|
104 | (1) |
|
|
105 | (2) |
|
|
107 | (1) |
|
Implementation of Ambiguous Base Interface Methods |
|
|
108 | (1) |
|
Default Implementation of a Method |
|
|
108 | (1) |
|
|
109 | (1) |
|
Automatic Array Initialization |
|
|
110 | (1) |
|
|
110 | (1) |
|
|
111 | (1) |
|
Delegates in Managed Extensions for C++ |
|
|
112 | (1) |
|
|
112 | (1) |
|
|
112 | (2) |
|
Properties of Managed Objects |
|
|
114 | (1) |
|
Property Types in Managed Extensions |
|
|
115 | (1) |
|
|
115 | (1) |
|
|
115 | (2) |
|
Adding Support for Managed Extensions for C++ to an Existing Application |
|
|
117 | (1) |
|
Modifying the Existing Project Settings |
|
|
117 | (1) |
|
Employing New Managed Extensions Functionality in Existing Applications |
|
|
117 | (1) |
|
Handling Exceptions Using Managed Extensions for C++ |
|
|
118 | (1) |
|
Basic Concepts in Using Managed Extentions |
|
|
119 | (1) |
|
Throwing Exception Using Managed Extentions |
|
|
119 | (1) |
|
Try/Catch Blocks Using Managed Extensions |
|
|
119 | (2) |
|
Order of Unwinding for C++ Objects |
|
|
121 | (1) |
|
Catching Unmanaged C++ Types |
|
|
121 | (1) |
|
Managed Extensions and the_Finally Keyword |
|
|
121 | (1) |
|
|
122 | (5) |
|
|
127 | (12) |
|
|
127 | (1) |
|
Comparison Between C++ and C# |
|
|
128 | (1) |
|
General Structure of a C# Program |
|
|
128 | (4) |
|
C# Version of Hello World |
|
|
132 | (2) |
|
Developing a Simple Windows Forms Control |
|
|
134 | (5) |
|
Class versus Component versus Control |
|
|
134 | (5) |
Appendix A APIs |
|
139 | (4) |
Appendix B Base Priority |
|
143 | (4) |
Appendix C Object Categories |
|
147 | (2) |
Appendix D Functions in Alphabetic Order (1939 APIs) |
|
149 | (24) |
Appendix E Win32 API Functions by Category (95) |
|
173 | (86) |
Appendix F Win32 Data Types |
|
259 | (6) |
Appendix G .NET Framework Namespaces |
|
265 | (12) |
Appendix H Attributes |
|
277 | (32) |
Appendix I Debugging Visual C++ |
|
309 | (12) |
Appendix J Event Handling in Visual C++ |
|
321 | (12) |
Appendix K Managed Extensions for C++ Reference |
|
333 | (2) |
Appendix L /CLR (Common Language Runtime Compilation) |
|
335 | (4) |
Appendix M C# Compiler Options |
|
339 | (6) |
Appendix N C# Keywords |
|
345 | (4) |
Appendix O C# Libraries Tutorial |
|
349 | (8) |
About the Author |
|
357 | (2) |
About UCI |
|
359 | (2) |
Index |
|
361 | |