| Preface | p. xi |
| Introduction to Python | p. 1 |
| What Is Python? | p. 3 |
| Language Features | p. 3 |
| Python as an Integration Tool | p. 5 |
| Case Studies of Python Deployment | p. 10 |
| The Python Community | p. 13 |
| Installation and Setup | p. 14 |
| Conclusion | p. 16 |
| Python Language Review | p. 17 |
| A Crash Course | p. 17 |
| Conclusion | p. 24 |
| References | p. 24 |
| Python on Windows | p. 25 |
| The Python Core on Windows | p. 26 |
| The Python for Windows Extensions | p. 36 |
| The Python Imaging Library (PIL) | p. 39 |
| PyOpenGL | p. 39 |
| Web Publishing Tools | p. 40 |
| The mx Extensions | p. 42 |
| Scientific Tools | p. 44 |
| XML | p. 44 |
| Conclusion | p. 45 |
| Integrated Development Environments for Python | p. 46 |
| The PythonWin IDE | p. 46 |
| IDLE | p. 59 |
| Conclusion | p. 64 |
| Introduction to COM | p. 65 |
| What It Is | p. 66 |
| Using COM Objects from Python | p. 66 |
| Implementing COM Objects with Python | p. 68 |
| Globally Unique Identifiers | p. 71 |
| Conclusion | p. 71 |
| Building an Advanced Python Application | p. 73 |
| A Financial Modeling Toolkit in Python | p. 75 |
| Doubletalk | p. 75 |
| A Crash Course in Accounting | p. 77 |
| The Doubletalk Toolkit at Work | p. 95 |
| Conclusion | p. 98 |
| Building a GUI with COM | p. 100 |
| Designing COM Servers | p. 100 |
| A VB Client | p. 102 |
| Writing a Delphi User Interface | p. 116 |
| Conclusion | p. 119 |
| Adding a Macro Language | p. 121 |
| Dynamic Code Evaluation | p. 122 |
| Making an Application Extensible | p. 133 |
| Conclusion | p. 141 |
| Integration with Excel | p. 142 |
| Client-Side COM and the Excel Object Model | p. 142 |
| Excel Concluded | p. 148 |
| Putting It All Together: Importing Financial Data | p. 151 |
| Server-Side COM Again: Excel as a GUI | p. 153 |
| Conclusion | p. 154 |
| References | p. 155 |
| Printed Output | p. 156 |
| Business Requirements | p. 156 |
| Automating Word | p. 161 |
| Direct Output to the Printer with Windows | p. 171 |
| PIDDLE: A Python Graphics API | p. 174 |
| PostScript | p. 176 |
| Portable Document Format | p. 178 |
| Putting It Together: A High-Volume Invoicing System | p. 182 |
| Conclusion | p. 187 |
| References | p. 187 |
| Distributing Our Application | p. 188 |
| DCOM | p. 188 |
| Conclusion | p. 189 |
| Python on Windows Cookbook | p. 191 |
| Advanced Python and COM | p. 193 |
| Advanced COM | p. 193 |
| Python and COM | p. 198 |
| Using Automation Objects from Python | p. 198 |
| Using Other COM Interfaces | p. 209 |
| Error Handling | p. 211 |
| Implementing COM Objects in Python | p. 213 |
| Python and DCOM | p. 227 |
| Conclusion | p. 234 |
| Databases | p. 235 |
| DAO, ADO, ODBC, OLEDB, and Other GBFLAs | p. 235 |
| Python's Database API | p. 240 |
| Getting at Your Data | p. 241 |
| A Note on Speed | p. 254 |
| Gadfly, the Pure Python Relational Database | p. 256 |
| Data Laundering with Python | p. 259 |
| A Three-Tier Architecture with Business Objects | p. 266 |
| Conclusion | p. 270 |
| References | p. 270 |
| Working with Email | p. 272 |
| SMTP and POP3 | p. 272 |
| Microsoft Exchange/Outlook | p. 278 |
| Conclusion | p. 281 |
| Using the Basic Internet Protocols | p. 282 |
| HTTP and HTML | p. 282 |
| FTP | p. 286 |
| NNTP | p. 287 |
| Conclusion | p. 289 |
| Windows NT Administration | p. 290 |
| Working with Users and Groups | p. 290 |
| Server and Share Information | p. 298 |
| Rebooting a Machine | p. 303 |
| Conclusion | p. 307 |
| References | p. 307 |
| Processes and Files | p. 308 |
| Portable File Manipulation | p. 308 |
| Native File Manipulation: The win32file Module | p. 318 |
| Pipes | p. 322 |
| Processes | p. 323 |
| Conclusion | p. 332 |
| Windows NT Services | p. 333 |
| Services in Brief | p. 333 |
| Controlling Services with Python | p. 335 |
| Reading the Event Log | p. 340 |
| Windows NT Performance Monitor Data | p. 344 |
| Writing Services in Python | p. 347 |
| Sample Service Written in Python | p. 351 |
| Writing to the Event Log | p. 355 |
| Providing Performance Monitor Information | p. 361 |
| A Final Service | p. 367 |
| Conclusion | p. 370 |
| Communications | p. 371 |
| Serial Communications | p. 371 |
| Remote Access Services | p. 379 |
| Sockets | p. 381 |
| Other Communications Tools | p. 385 |
| Conclusion | p. 386 |
| References | p. 386 |
| GUI Development | p. 388 |
| Tkinter | p. 388 |
| PythonWin | p. 400 |
| wxPython | p. 412 |
| Active Scripting | p. 435 |
| Registering the Python Active Script Support | p. 436 |
| Python and Popular Microsoft Applications | p. 436 |
| Active Debugging | p. 446 |
| How Active Scripting Works | p. 446 |
| Active Script Hosting in Python | p. 447 |
| Conclusion | p. 450 |
| Extending and Embedding with Visual C++ and Delphi | p. 451 |
| Python and Visual C++ | p. 452 |
| Simplified Wrapper and Interface Generator | p. 466 |
| Python and Delphi | p. 467 |
| Dynamic DLL Access | p. 471 |
| References | p. 473 |
| Conclusion | p. 473 |
| Appendixes | p. 475 |
| Key Python Modules and Functions | p. 477 |
| Win32 Extensions Reference | p. 529 |
| The Python Database API Version 2.0 | p. 604 |
| Threads | p. 616 |
| Index | p. 631 |
| Table of Contents provided by Syndetics. All Rights Reserved. |