1.1 Program organization
1.2.2 What are “function parameters” ?
1.2.3 Console mode programs and windows programs
1.2.4 An overview of the compilation process
1.2.6 The run time environment
1.3 An overview of the standard libraries
1.3.1 The “stdheaders.h” include file
1.3.2 Windows specific headers
1.4 Passing arguments to a program
1.4.1 Iteration constructs
1.5 Declarations and definitions
1.5.1 Variable declaration
1.5.5 Variable definition
1.6 Errors and warnings
1.7.2 The typical sequence of operations
1.7.4 Other input/output functions
1.8 Commenting the source code
1.8.1 Describing a function
1.9 An overview of the whole language
1.9.4 Windows specific defined symbols
1.9.5 Structured exception handling
1.9.7 Windows specific syntax
1.10 Extensions of lcc-win32
1.11.5 Functions with variable number of arguments
1.11.21 break and continue statements
1.11.33 Precedence of the different operators
1.12 The printf family
1.13.1 Operations with pointers
1.14.2 Register variables and longjmp()
1.15.4 Write ispowerOfTwo without any loops
1.16 Using arrays and sorting
1.16.2 Other qsort applications
1.16.3 Summary of Arrays and sorting
1.17 Pointers and references
1.18 Structures and unions
1.19 Using structures
1.19.1 Fine points of structure use
1.20 Identifier scope and linkage
1.21 Top-down analysis
1.22 Extending a program
1.23 Improving the design
1.24 Traditional string representation in C
1.25 The problems with C-“Strings“
1.26.1 A buffer overflow in the C standard document
1.27 Memory management and memory layout
1.27.1 Functions for memory allocation
1.28 Memory management strategies
1.28.2 Stack based allocation
1.28.3 “Arena” based allocation
1.28.4 The malloc / free strategy
1.28.5 The malloc with no free strategy
1.28.6 Automatic freeing (garbage collection)
1.28.8 A debugging implementation of malloc
1.29.1 The organization of the table
1.29.3 Displaying the results
1.30 Time and Date functions
1.31 Using structures (continued)
1.32 A closer look at the pre-processor
1.33 Using function pointers
1.34 Advanced C programming with lcc-win32
1.34.5 Structured exception handling
1.35 Numerical programming
1.35.1 Floating point formats
1.35.2 What can we do with those numbers then?
1.36 Using the floating point environment
1.36.2 Reinitializing the floating point environment
1.37 Using the libraries of lcc-win32
1.37.1 The regular expressions library. A “grep” clone
1.38 Programming with security in mind
1.38.1 Always include a ‘default’ in every switch statement
1.38.2 Pay attention to strlen and strcpy
1.38.3 Do not assume correct input
1.39 Pitfalls of the C language
1.39.1 Defining a variable in a header file
1.39.3 Forgetting to close a comment
1.39.4 Easily changed block scope
1.39.5 Using the ++ or -- more than once in an expression
1.39.6 Unexpected Operator Precedence
1.39.7 Extra Semi-colon in Macros
1.39.8 Watch those semicolons!
1.39.9 Assuming pointer size is equal to integer size
1.39.10 Careful with unsigned numbers
1.39.12 Indefinite order of evaluation
1.39.13 A local variable shadows a global one
1.39.14 Careful with integer wraparound
1.39.15 Problems with integer casting
3.1.3 The dialog box procedure
3.1.4 A more advanced dialog box procedure
3.2 User interface considerations
3.4 Dynamically linked libraries (DLLs)
3.6 A more formal approach
3.6.2 Event oriented programming
3.7 A more advanced window
3.8.6 Getting keyboard input
3.9 Window controls
3.10 A more complex example: a "clone" of spy.exe
3.10.1 Creating the child windows
3.10.2 Moving and resizing the child windows
3.10.4 Building the window tree
3.10.5 Scanning the window tree
3.10.7 Filling the status bar
3.11 Numerical calculations in C
3.12 Filling the blanks
3.13 Using the graphical code generator
3.14 Customizing controls
3.14.1 Processing the WM_CTLCOLORXXX message
3.14.2 Using the WM_DRAWITEM message
3.15 Building custom controls
3.16.1 The structure of the registry
3.16.2 Enumerating registry subkeys
3.16.3 Rules for using the registry
3.17.2 Serial communications
3.17.7 Inter-Process Communications
3.18 Advanced windows techniques
3.18.5 Creating a desktop shortcut
3.19 Error handling under windows
3.19.1 Check the return status of any API call
3.19.2 Always check allocations
3.20.1 Dialog will not display when you add a control
3.21 Some Coding Tips
3.21.1 Determining which version of Windows is running
3.21.2 Translating the value returned by GetLastError() into a
3.21.3 Clearing the screen in text mode
3.21.4 Getting a pointer to the stack
3.21.5 Disabling the screen saver from a program
3.21.6 Drawing a gradient background
3.21.7 Capturing and printing the contents of an entire window
3.21.8 Centering a dialog box in the screen
3.21.9 Determining the number of visible items in a list box
3.21.10 Starting a non-modal dialog box
3.21.11 Propagating environment variables to the parent
3.21.12 Restarting the shell under program control
3.21.13 Translating client coordinates to screen coordinates
3.21.14 Passing an argument to a dialog box procedure
3.21.15 Calling printf from a windows application
3.21.16 Enabling or disabling a button or control in a dialog box
3.21.17 Making a window class available for all applications in
3.21.18 Accessing the disk drive directly without using a file
3.21.26 Mounting and unmounting volumes in NTFS 5.0
3.22.1 How do I create a progress report with a Cancel button?
3.22.2 How do I show in the screen a print preview?
3.22.3 How do I change the color of an edit field?
3.22.4 How do I draw a transparent bitmap?
3.22.5 How do I draw a gradient background?
3.22.6 How do I calculate print margins?
3.22.7 How do I calculate the bounding rectangle of a string of
3.22.8 How do I close an open menu?
3.22.9 How do I center a dialog box in the screen?
3.22.10 How do I create non-rectangular windows?
3.22.11 How do I implement a non-blinking caret?
3.22.12 How do I create a title window (splash screen)?
3.22.13 How do I append text to an edit control?
3.22.14 How do I determine the color settings?
3.22.16 How to modify the width of the list of a combo box
3.22.17 How do I modify environment variables permanently?
3.22.18 How do I add a new directory to the PATH variable
3.22.19 How do I add a menu item to the explorer right click
3.22.20 How do I translate between dialog units and pixels?
3.22.21 I initialize in WM_CREATE but the values of my variable
3.22.22 How do I translate between client coordinates to screen
3.22.23 When should I use critical sections and when is a mutex
3.22.24 Why is my call to CreateFile failing when I use conin$ or
3.22.25 How can I control the task bar under program control?
3.22.26 How to erase a file into the recycle bin?
3.22.27 Making a timed message box
3.22.28 How do I build a “Property-sheet” control?
3.22.29 How to tell Windows to run a program during startup ?
3.22.30 How do I disable the screen saver?
3.22.32 How do I simulate a key stroke to send it to another
3.22.33 How can I encrypt and decrypt a character string?
3.23 Finding more examples and source code
3.24 Overview of lcc-win32’s documentation
4.3 The HTTP Protocol
4.4 The FTP protocol
4.4.1 Implementing the ftp “GET”
4.5 Querying the network parameters
4.6 Writing “ping”
4.7 Client/Server programming using sockets
4.7.1 Common steps for server and client
4.7.4 Sending and receiving data
4.7.5 Simplifying sockets programming with lcc-win32