100% found this document useful (1 vote)
14 views

DirectX 8 and Visual Basic Development Keith Sink - The ebook in PDF/DOCX format is ready for download now

The document is a promotional material for various eBooks available for download at ebookname.com, including titles on DirectX and Visual Basic development. It lists several specific eBooks with links for downloading, covering topics such as game programming, multimedia, and database theory. Additionally, it provides an overview of the contents of the book 'DirectX 8 and Visual Basic Development' by Keith Sink, detailing its structure and key topics.

Uploaded by

soyagester
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
14 views

DirectX 8 and Visual Basic Development Keith Sink - The ebook in PDF/DOCX format is ready for download now

The document is a promotional material for various eBooks available for download at ebookname.com, including titles on DirectX and Visual Basic development. It lists several specific eBooks with links for downloading, covering topics such as game programming, multimedia, and database theory. Additionally, it provides an overview of the contents of the book 'DirectX 8 and Visual Basic Development' by Keith Sink, detailing its structure and key topics.

Uploaded by

soyagester
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

Endless Ebook, One Click Away – Start Downloading at ebookname.

com

DirectX 8 and Visual Basic Development Keith Sink

https://ebookname.com/product/directx-8-and-visual-basic-
development-keith-sink/

OR CLICK HERE

DOWLOAD EBOOK

Browse and Get More Ebook Downloads Instantly at https://ebookname.com


Click here to visit ebookname.com and download ebook now
Instant digital products (PDF, ePub, MOBI) available
Download now and explore formats that suit you...

Visual Basic Game Programming with DirectX 1st Edition


Jonathan S. Harbour

https://ebookname.com/product/visual-basic-game-programming-with-
directx-1st-edition-jonathan-s-harbour/

Ableton Live 8 and Suite 8 Keith Robinson

https://ebookname.com/product/ableton-live-8-and-suite-8-keith-
robinson/

Clearly Visual Basic Programming with Microsoft Visual


Basic 2012 3rd Edition Diane Zak

https://ebookname.com/product/clearly-visual-basic-programming-
with-microsoft-visual-basic-2012-3rd-edition-diane-zak/

Cultural Tourism Research Methods First Edition Greg


Richards

https://ebookname.com/product/cultural-tourism-research-methods-
first-edition-greg-richards/
Beginning ASP NET 4 5 Databases 3rd Edition Sandeep
Chanda

https://ebookname.com/product/beginning-asp-
net-4-5-databases-3rd-edition-sandeep-chanda/

Ring Shout Wheel About Katrina Dyonne Thompson

https://ebookname.com/product/ring-shout-wheel-about-katrina-
dyonne-thompson/

Traffic Engineering with MPLS Eric Osborne

https://ebookname.com/product/traffic-engineering-with-mpls-eric-
osborne/

An Introduction to Relational Database Theory 4th


Edition Hugh Darwen

https://ebookname.com/product/an-introduction-to-relational-
database-theory-4th-edition-hugh-darwen/

Women Who Love Psychopaths Inside the Relationships of


inevitable Harm With Psychopaths Sociopaths Narcissists
2nd Edition Sandra L. Brown

https://ebookname.com/product/women-who-love-psychopaths-inside-
the-relationships-of-inevitable-harm-with-psychopaths-sociopaths-
narcissists-2nd-edition-sandra-l-brown/
Ullmann s Fine Chemicals 1st Edition Barbara Elvers

https://ebookname.com/product/ullmann-s-fine-chemicals-1st-
edition-barbara-elvers/
DirectX 8 and Visual Basic
Development
Keith Sink

800 East 96th Street, Indianapolis, Indiana, 46240 USA


ASSOCIATE PUBLISHER
DirectX 8 and Visual Basic Linda Engelman
Development ACQUISITIONS EDITOR
Sondra Scott
Copyright © 2002 by Sams Publishing
All rights reserved. No part of this book shall be reproduced, stored in a DEVELOPMENT EDITOR
retrieval system, or transmitted by any means, electronic, mechanical, photo- Nancy E. Sixsmith
copying, recording, or otherwise, without written permission from the pub- MANAGING EDITOR
lisher. No patent liability is assumed with respect to the use of the information Charlotte Clapp
contained herein. Although every precaution has been taken in the preparation
of this book, the publisher and author assume no responsibility for errors or PROJECT EDITOR
omissions. Nor is any liability assumed for damages resulting from the use of Heather McNeill
the information contained herein.
COPY EDITOR
International Standard Book Number: 0-672-32225-0 Lisa M. Lord
Library of Congress Catalog Card Number: 10-89223 INDEXER
Printed in the United States of America Sandy Henselmeier

First Printing: November 2001 PROOFREADER


04 03 02 01 4 3 2 1 Andrea Dugan

TECHNICAL EDITORS
Trademarks Andrew Indovina
All terms mentioned in this book that are known to be trademarks or service Joe Johnston
marks have been appropriately capitalized. Sams Publishing cannot attest to William McLoughlin
the accuracy of this information. Use of a term in this book should not be
TEAM COORDINATOR
regarded as affecting the validity of any trademark or service mark.
Lynne Williams
DirectX, DirectDraw, DirectShow, DirectSound, DirectMusic, DirectPlay,
DirectInput, Direct3D, DirectGraphics, Microsoft, Microsoft Visual Basic, and MEDIA DEVELOPER
Windows are registered trademarks of Microsoft Corporation. Dan Scherf

INTERIOR DESIGNER
Warning and Disclaimer Anne Jones
Every effort has been made to make this book as complete and as accurate as COVER DESIGNER
possible, but no warranty or fitness is implied. The information provided is on Gary Adair
an “as is” basis. The author and the publisher shall have neither liability nor
responsibility to any person or entity with respect to any loss or damages aris- PAGE LAYOUT
ing from the information contained in this book or programs accompanying it. Octal Publishing, Inc.
Contents at a Glance
Introduction

Part I Visual Basic and DirectX Development


1 Fundamentals of DirectX Programming
2 Multimedia Programming in the Visual Basic Environment
3 Animation Techniques

Part II DirectX Graphics Programming


4 Creating Graphics with the DirectX Graphics Object
5 Creating Basic Animations with Surface Objects
6 Palettes and Palette Animation
7 3D Geometry
8 Direct3D
9 Using Direct3D

Part III Monitoring User Input with DirectInput


10 Using DirectInput to Manage User Interactions
11 Action Mapping
12 The Keyboard
13 The Joystick
14 The Mouse

Part IV Adding Music and Sounds with DirectAudio


15 DirectX Audio—DirectMusic and DirectSound
16 Composing Music
17 Adding Sounds to Your Application with DirectSound

Part V Streaming Media with DirectShow


18 Introduction to DirectShow
19 Using DirectShow for Digital Editing
20 Multimedia Players
Part VI Multiuser Strategies with DirectPlay
21 Using DirectPlay to Create Multiplayer Games
22 Using Lobbies to Create Player Interactions
23 Managing Games with DirectPlay
24 Using DirectPlay Voice in Your Application

Part VII Finishing Touches


25 DirectSetup

Part VII Appendix


A VB .NET and DirectX

Index
Table of Contents
Introduction 1
Who This Book Is For? ..........................................................................1
What You Need to Know ........................................................................1
What Hardware and Software You Need ................................................1
How This Book Is Organized ................................................................2
Conventions Used in This Book ............................................................3

PART I VB and DirectX Development 5


1 Introduction to DirectX Programming 7
What Is DirectX? ..................................................................................8
A History ................................................................................................8
The Early Days ..................................................................................8
The DOS Days ..................................................................................9
Along Came Windows ......................................................................9
Then There Was DirectX ................................................................10
Why Visual Basic and DirectX? ..........................................................12
The Evolution of Visual Basic ........................................................12
DirectX for the Masses ....................................................................12
Putting DirectX to Work ......................................................................13
Showcasing Products ......................................................................13
Music and Sound ............................................................................13
User Interactions ..............................................................................14
Screensavers and Multimedia ..........................................................15
Game Programming ........................................................................15
Synchronizing Data ........................................................................15
The DirectX Components ....................................................................16
Summary ..............................................................................................18

2 Multimedia Programming in the Visual Basic Environment 19


Installing DirectX ................................................................................20
Setting Up DirectX for Use in Visual Basic ........................................20
Creating a Reference to the DirectX 8.0 type Library ....................21
Classes and Objects ..............................................................................22
COM ..............................................................................................23
Creating DirectX Objects ................................................................23
Programming Tips to Improve Animation ............................................25
Timers ..............................................................................................25
Execution Loops ..............................................................................27
Error Trapping ................................................................................29
Debugging ......................................................................................30
vi
DIRECTX 8 AND VISUAL BASIC DEVELOPMENT

DirectX Utilities ....................................................................................31


DirectX Caps Viewer ......................................................................31
DirectX Error Lookup ....................................................................31
DirectX Texture Tool ......................................................................32
DMO Test Tool ................................................................................32
Force Feedback Editor ....................................................................33
GraphEdit Tool ................................................................................34
Kill Help Utility ..............................................................................35
Mesh Viewer Tool ............................................................................35
Compiling for Speed: Tips and Tricks ..................................................35
Remove Unused Subroutines ..........................................................36
Remove Unused Variables ..............................................................36
Reduce Access Times ......................................................................36
Destroy All Objects ........................................................................36
Remove Debug Statements ..............................................................36
Add DoEvents ................................................................................37
Summary ..............................................................................................37

3 Animation Techniques 39
The Basics ............................................................................................40
The Model Sheet ............................................................................40
The Frame ........................................................................................40
The Cycle ........................................................................................41
Storyboards ......................................................................................41
Keyframes ........................................................................................42
Backgrounds ....................................................................................42
DirectX Objects ....................................................................................43
Frame Rates ....................................................................................43
Blits ..................................................................................................43
Sprites ..............................................................................................44
Drawing Surfaces ............................................................................45
Palettes ............................................................................................45
Rectangles ........................................................................................46
Clippers ............................................................................................46
Billboards ........................................................................................47
Techniques ............................................................................................48
Blitting ............................................................................................48
Page Flipping and Back Buffering ..................................................48
Palette Cycling ................................................................................49
Summary ..............................................................................................50
vii
CONTENTS

PART II DirectX Graphics Programming 51


4 Creating Graphics with DirectDraw 53
Creating Graphics with DirectDraw Classes ........................................54
What Is DirectDraw? ......................................................................54
DirectDraw Architectural Overview ................................................55
HAL Versus HEL ..................................................................................62
Display Modes ......................................................................................63
Standard Display Modes ................................................................64
An Example Using the DirectDraw Class ............................................65
Summary ..............................................................................................68

5 Creating Basic Animations 71


Surfaces ................................................................................................72
Creating Surfaces ............................................................................72
Creating Surfaces from Files ..........................................................74
Surface Descriptions ........................................................................75
Flipping Surfaces ............................................................................77
Blitting to a Surface ........................................................................79
The Many Forms of the BLIT Routine ..........................................79
Gamma and Color Controls ..................................................................82
Overlay Surfaces ..................................................................................83
A DirectDrawSurface Example ............................................................85
Summary ..............................................................................................88

6 Palettes and Palette Animation 91


Palettes ................................................................................................92
Palette Types ....................................................................................92
Palette Entries ..................................................................................92
Sharing Palettes ..............................................................................93
Palette Animation ..................................................................................95
Modifying the Palette ......................................................................96
Switching Palettes ..........................................................................97
A DirectDrawPalette Example ..........................................................100
Summary ............................................................................................101

7 3D Geometry 103
3D Space Coordinate System ............................................................104
3D Objects ..........................................................................................105
Vertices ..........................................................................................106
Polygons ........................................................................................106
Faces ..............................................................................................107
Mesh ..............................................................................................107
Texture ..........................................................................................109
viii
DIRECTX 8 AND VISUAL BASIC DEVELOPMENT

Lights ............................................................................................109
Materials ........................................................................................109
Matrices ..............................................................................................111
Projection Matrix ..........................................................................112
View Matrix ..................................................................................112
World Matrix (World Transformation) ..........................................112
Summary ............................................................................................112

8 Direct3D 115
Direct3D Objects ................................................................................116
The Direct3D8 Class ....................................................................116
The Direct3DBaseTexture8 Class ................................................117
The Direct3DCubeTexture8 Class ................................................118
The Direct3DDevice8 Class ..........................................................119
The Direct3DIndexBuffer8 Class ..................................................123
The Direct3DResource8 Class ......................................................124
The Direct3DSurface8 Class ........................................................125
The Direct3DSwapChain8 Class ..................................................126
The Direct3DTexture8 Class ........................................................126
The Direct3DVertexBuffer8 Class ................................................127
The Direct3DVolume8 Class ........................................................127
The Direct3DVolumeTexture8 Class ............................................128
Creating 3D Applications ..................................................................129
Creating a Direct3D Application ..................................................129
Working with Vertices ..................................................................133
Working with Matrices ..................................................................137
Working with Lights ......................................................................142
Working with Textures ..................................................................146
Working with Meshes ....................................................................149
Summary ............................................................................................153

9 Using Direct3D 155


2D Graphics with Direct3D ................................................................156
Declaring the Objects ....................................................................156
Initializing the Environment ..........................................................157
Creating the Background Vertices ................................................159
Drawing to the Screen ..................................................................161
Updating the Bee’s Coordinates ....................................................162
Creating a Billboard Application ........................................................163
Declaring the Objects ....................................................................163
Initializing the Environment ..........................................................165
Rendering the Scene ......................................................................168
Manipulating Vectors and Vertices ................................................171
Summary ............................................................................................173
ix
CONTENTS

PART III Monitoring User Input with DirectInput 175


10 Using DirectInput to Manage User Interactions 177
Obtaining User Input from DirectInput ..............................................178
Objects in DirectInput ..................................................................179
Cooperative Levels ......................................................................180
DirectInput Architectural Overview ..................................................180
The DirectInput Class ....................................................................181
The DirectInputDevice Class ........................................................183
The DirectInputDeviceObjectInstance Class ................................185
The DirectInputDeviceInstance Class ..........................................186
The DirectInputEffect Class ..........................................................187
The DirectInputEnumEffects Class ..............................................189
DirectInput Technologies and Components ......................................190
Action Mapping ............................................................................190
Force Feedback ..............................................................................190
The Keyboard Component ............................................................191
Joysticks, Yokes, and Steering Wheels ..........................................191
The Mouse Component ................................................................191
Summary ............................................................................................191

11 Action Mapping 193


Managing User Input with Action Maps ............................................194
Preparing the Action Map ............................................................195
Configuring the Action Map ........................................................200
Summary ............................................................................................204

12 The Keyboard 205


Retrieving User Input from the Keyboard ..........................................206
Creating Your Objects ..................................................................206
Setting the Keyboard Parameters ..................................................206
Accessing the Keyboard ................................................................207
Retrieving Immediate Data from the Keyboard ............................207
Two Methods of Analysis ..............................................................214
The Keyboard Example ......................................................................215
Summary ............................................................................................217

13 The Joystick 219


Retrieving User Input from the Joystick ............................................220
Creating Your Objects ..................................................................220
Getting the Joystick Capabilities ..................................................222
Setting Joystick Device Properties ................................................223
Dead Zones ....................................................................................224
Using the Joystick ........................................................................225
Force Feedback ..................................................................................227
Force-Feedback Effects ................................................................228
Force Feedback Properties ............................................................228
The Joystick Example ........................................................................228
Summary ............................................................................................236

14 The Mouse 237


Retrieving User Input from the Mouse ..............................................238
Creating Your Objects ..................................................................238
Setting the Buffer Size ..................................................................239
Event Notification ........................................................................239
Considerations for DirectInput Use of the Mouse ............................240
Retrieving the Mouse Data ............................................................241
Analyzing the DIDEVICEOBJECTDATA Variable ....................241
Immediate Data ..................................................................................244
Summary ............................................................................................244

PART IV Adding Music and Sounds with DirectAudio 245


15 DirectX Audio—DirectMusic and DirectSound 247
What Is DirectMusic? ........................................................................248
DirectMusic Architectural Overview ............................................248
DirectMusic Classes ......................................................................249
What Is DirectSound? ........................................................................250
DirectSound Architectural Overview ............................................251
DirectSound Classes ......................................................................252
Objects for Sound Effects ............................................................253
Sound Buffers ................................................................................254
DirectSound 3D ............................................................................254
When Should I Use DirectSound Versus DirectMusic? ....................256
Summary ............................................................................................256

16 Composing Music 257


The Loader Object ..............................................................................258
Using the DirectMusic Loader Object ..........................................258
The Performance Object ....................................................................259
Using the DirectMusic Performance Object ................................259
The Segment Object ..........................................................................263
Using the DirectMusic Segment Object ........................................263
The Audio Parameter Structure ..........................................................264
Using the DirectMusic Audio Parameter Type ............................264
The Band Object ................................................................................265
Using the DirectMusic Band Object ............................................265
Modifying the Performance ................................................................265
Volume ..........................................................................................266
Tempo ............................................................................................266
A DirectMusic Example ....................................................................266
Declaring the Variables ..................................................................267
Initializing the Performance ..........................................................267
Using the Loader Object ..............................................................267
Using the Segment Object ............................................................268
Using the Performance Object ......................................................268
DirectMusic Producer ........................................................................268
Summary ............................................................................................269

17 Adding Sounds to Your Application with DirectSound 271


The DirectSound8 Object ..................................................................272
Using the DirectSound8 Object ....................................................272
Buffers ................................................................................................273
Primary Sound Buffer ..................................................................273
Secondary Sound Buffer ..............................................................273
The DirectSound Buffer Descriptor ..................................................274
Buffer Descriptor Members ..........................................................275
Creating the DirectSound Buffer Descriptor
(DSBUFFERDESC) ..................................................................275
Using the Sound Buffers ....................................................................277
Enumerating the Sound Driver ......................................................277
Creating the Sound Buffer ............................................................277
Loading the Buffer ........................................................................278
Playing the Buffer ........................................................................278
Modifying the Sound Buffer ..............................................................279
Frequency ......................................................................................279
Panning ..........................................................................................279
Volume ..........................................................................................279
Example ........................................................................................279
Recording ............................................................................................280
Creating the Capture Object ..........................................................280
Creating the Capture Buffer ..........................................................280
Recording ......................................................................................281
Converting the Buffer ....................................................................282
Saving the File ..............................................................................283
DirectSound3D ..................................................................................283
Coordinates ....................................................................................283
Distances ........................................................................................284
The 3D Buffer ..............................................................................284
The 3D Listener ............................................................................285
Summary ............................................................................................286
PART V Streaming Media with DirectShow 287
18 Introduction to DirectShow 289
Uses for DirectShow ..........................................................................290
Objects in DirectShow ........................................................................290
Filter ..............................................................................................290
Filter Graph ..................................................................................291
Pin ..................................................................................................291
DirectShow Architecture ....................................................................291
Supported Media Formats and Codecs ..............................................293
Creating a Reference to the ActiveMovie Type Library ....................295
Summary ............................................................................................296

19 Using DirectShow for Digital Editing 297


DirectShow Editing Services (DES) ..................................................298
The AMTimeLine Class ................................................................298
The AMTimelineComp Class ........................................................299
The AMTimelineEffect Class ........................................................300
The AMTimelineGroup Class ......................................................300
The AMTimelineObj Class ..........................................................301
The AMTimelineSrc Class ............................................................302
The AMTimelineTrack Class ........................................................303
The AMTimelineTrans Class ........................................................303
The IAMErrorLog Class ..............................................................304
The IAMSetErrorLog Class ..........................................................304
The IAMTimelineEffectable Class ................................................304
The IAMTimelineSplittable Class ................................................305
The IAMTimelineTransable Class ................................................305
The IAMTimelineVirtualTrack Class ............................................306
The IEnumFilters Class ................................................................306
The IEnumMediaTypes Class ......................................................306
The IEnumPins Class ....................................................................306
The IErrorLog Class ......................................................................306
The IFilterGraph Class ..................................................................307
The IGraphBuilder Class ..............................................................307
The IMediaFilter Class ..................................................................308
The IMediaSample Class ..............................................................309
The IPersistStream Class ..............................................................309
The IPin Class ..............................................................................310
The IReferenceClock Class ..........................................................310
The ISmartRenderEngine Class ....................................................311
The MediaDet Class ......................................................................311
The MediaLocator Class ..............................................................312
The RenderEngine Class ..............................................................312
The SmartRenderEngine Class ......................................................313
The Xml2Dex Class ......................................................................313
Summary ............................................................................................313

20 Multimedia Players 315


The ActiveMovie DLL ........................................................................316
The FilgraphManager Object ........................................................316
The IAMCollection Class ..............................................................316
The IAMStats Class ......................................................................317
The IBasicAudio Class ..................................................................317
The IBasicVideo Class ..................................................................317
The IBasicVideo2 Class ................................................................319
The IDeferredCommand Class ......................................................319
The IFilterInfo Object ..................................................................319
The IMediaEvent Object ..............................................................320
The IMediaEventEx Object ..........................................................320
The IMediaPosition Object ..........................................................321
The IMediaTypeInfo Object ..........................................................321
The IPinInfo Object ......................................................................321
The IQueueCommand Class ..........................................................322
The IRegFilterInfo Object ............................................................322
The IVideoWindow Class ..............................................................323
An Example Using the ActiveMovie DLL ........................................324
Microsoft Web DVD Control ............................................................330
The DVDRect Class ......................................................................330
The MSDVDAdm Class ................................................................331
The MSWebDVD Class ................................................................332
Summary ............................................................................................336

PART VI Multiuser Strategies with DirectPlay 337


21 Using DirectPlay to Create Multiplayer Games 339
A DirectPlay Primer ..........................................................................340
Service Provider ............................................................................340
Connection ....................................................................................341
Session ..........................................................................................341
Player ............................................................................................341
Group ............................................................................................341
Host ................................................................................................341
Message ........................................................................................342
Network Providers ........................................................................342
System Messages ..........................................................................343
xiv
DIRECTX 8 AND VISUAL BASIC DEVELOPMENT

Lobby ............................................................................................343
GUID ............................................................................................343
Communication Models ......................................................................344
Peer-to-Peer ..................................................................................344
Client/Server ..................................................................................344
DirectPlay Events ..............................................................................346
A DirectPlay Peer-to-Peer Client ......................................................346
Assigning a GUID ........................................................................346
Initializing the DirectPlay Peer-to-Peer Client ............................346
Finding the Available Service Providers ......................................347
Finding the Game Host ................................................................347
Connecting to the Session ............................................................347
Managing the Session ....................................................................348
Sending Messages ........................................................................348
Closing the Session ......................................................................348
A DirectPlay Client/Server Connection ............................................349
Assigning a GUID ........................................................................349
Initializing the DirectPlay Client/Server Client ............................349
Finding the Available Service Providers ......................................349
Finding the Game Host ................................................................350
Connecting to the Session ............................................................350
Managing the Session ....................................................................350
Sending Messages ........................................................................351
Closing the Session ......................................................................351
Summary ............................................................................................351

22 Using Lobbies to Create Player Interaction 353


Lobby Architecture ............................................................................354
Lobby Servers ....................................................................................355
Lobby Clients ......................................................................................356
The DirectPlay8LobbyClient Class ..............................................357
DirectPlay Lobbied Application ........................................................357
The DirectPlay8LobbiedApplication Class ..................................358
DirectPlay Lobby Event ....................................................................358
The DirectPlay8LobbyEvent Class ..............................................359
Summary ............................................................................................359

23 Managing Games with DirectPlay 361


DirectPlay Concepts ..........................................................................362
DirectPlay Architecture ......................................................................363
Using the DirectPlay8Address Class ............................................363
Using the DirectPlay8Client Class ................................................366
xv
CONTENTS

Using the DirectPlay8Event Class ................................................367


Using the DirectPlay8Peer Class ..................................................369
Using the DirectPlay8Server Class ..............................................371
Summary ............................................................................................373

24 Using DirectPlay Voice in Your Application 375


DirectPlay Concepts ..........................................................................376
Voice Session ................................................................................376
Transmission Target ......................................................................376
DirectPlay Voice Architecture ............................................................377
Using the DirectPlayVoiceClient8 Class ......................................378
Using the DirectPlayVoiceEvent8 Class ......................................379
Using the DirectPlayVoiceServer8 Class ......................................380
Using the DirectPlayVoiceTest8 Class ..........................................381
Using DirectPlay Voice ......................................................................381
DirectPlay Voice on a Peer-to-Peer Connection ............................381
DirectPlay Voice on a Forwarding Server Connection ................382
DirectPlay Voice on a Mixing Server Session ..............................382
Summary ............................................................................................382

PART VII Finishing Touches 383


25 DirectSetup 385
Working with the DirectXSetup Libraries ..........................................386
Initializing the DirectXSetup Functions ........................................386
Using the DirectXSetupGetVersion Function ..............................387
Using the DirectXSetup Function ................................................388
Using the Package and Deployment Wizard ......................................389
Creating the Setup Package ..........................................................389
A Little Voodoo ............................................................................393
Deploying the Setup ......................................................................394
Alternatives to the Package and Deployment Wizard ........................395
Summary ............................................................................................395

PART VIII Appendix 397


A VB .NET and DirectX 399
Setting Up DirectX for Use in VB .NET ..........................................400
Converting the DirectX DLLs to VB .NET Format ......................400
Creating a Reference to the DirectX 8 Type Library ....................400
Debugging Your Code in VB .NET ....................................................403
Error Trapping in VB .NET ..........................................................403
New Debugging Features of VB .NET ........................................404

Index 405
Another Random Document on
Scribd Without Any Related Topics
laughter and occasional jests came from the nobles and their women
clustered on the steps, but as Larry looked out over the crowd in the
Plaza he saw faces that were grim and intent. The threat of the
electronic rifles of the guards would keep the unarmed mob from
trying to aid the prisoners, but there was no doubt where their
sympathies lay.
Glancing up at the tyrants grouped on the temple steps, Larry
suddenly saw Colton. The former second officer of the Sky Maid now
wore the white and gold robes of a noble of Gral-Thala. Xylon kept
his promises! Colton flushed uncomfortably when his glance met
Larry's grim stare, quickly turning his eyes away. He looked
uncomfortable and ill-at-ease. Larry glanced at him again a few
minutes later and saw Colton staring at Diana's bound and
motionless form with definite misery in his eyes.
One of the nobles stepped to the front and began to address the
crowd. Shrill yells and catcalls drowned his words. The guards raged,
but the men in the front ranks of the mob were discreetly silent and
they could not reach or identify the culprits in the ranks behind.
Many of the nobles were muttering nervously among themselves,
showing definite signs of fear.
"There was never a scene like this in Pandonaria before!" Pyatt of
Kagan exulted from where he was bound beside Larry. "We may die,
but our death is likely to stir the people to such a pitch that the
revolt will soon come!"
Xylon, for all his faults, was made of sterner stuff than most of his
fellow nobles. He sneered down at the muttering crowd, then signed
to the officer commanding the guards.
"Pay no attention to the dogs," he commanded sharply. "Give these
three a taste of the whip before the flayers rip the skins from their
bodies. Begin with the girl."
A heavy-featured man in a black tunic stepped up to Diana, pulling
the lash of a heavy whip through his hands to test its suppleness.
Before he could strike there came a sudden interruption. A small car
had been speeding down the incline from the tunnel entrance and
now a gilded officer of the invaders leaped out and came running
across the Plaza.
"Great news, oh Xylon and nobles of Gral-Thala!" he shouted. "One
of our patrols has captured a great force of outlaw warriors and their
insect allies, who were moving in to raid our nearer caves. Some
more Earthlings are with them!"
"Good, by Gorton!" exulted Xylon. "We will delay the execution of
these three till the others are here to see it."
Larry's last hope was gone. He had remembered Ripon's promise to
come after them if they had not returned quickly, and in the back of
his mind had been the thought that the doughty scientist might yet
accomplish a rescue in some way. Now that hope had vanished. He
sighed, and beside him Diana sagged visibly in her bonds.
"Guess it's the end," she said. "Good bye, Larry!"

XVI
From where he stood on the scaffold, Larry could see a number of
the big transport cars coming down the incline. They were crowded
with prisoners and guards, and he caught the gleam of the hard
brown shells of Insect-men. Once unloaded from the cars, they all
formed up in columns and came quickly across the Plaza. Behind the
front rank of guards Larry saw Ripon, and some of the men from the
Sky Maid, and many whom he recognized as leaders among the
Lunarians of the Lost Caverns.
It was all over now. The prisoners trudged along like beaten men,
utterly disheartened although they were but thinly guarded. The
nobles grouped on the temple steps were laughing loudly, all their
nervousness of a moment ago gone before the reassurance of this
victory. Then, as the prisoners were halted in the Plaza directly
before the double line of soldiers that guarded the temple, an officer
beside Xylon leaned forward to point down at the commander of the
patrol that was bringing in the prisoners.
"That man wears the insignia of an Ensign of the first rank," he
shouted, "but there is no such man in the ranks of our officers!
There is treachery here!"
Before the man's words had died away, Crispin Gillingwater Ripon
had whipped a ray-gun out from under his cloak and smashed the
officer's chest into a charred pulp with the deadly blast of the rays.
In an instant the Plaza was a wild turmoil. The pretended prisoners
drew their hidden weapons. Those who had been masquerading as
guards, using the armor they had taken from the soldiers they
surprised and overwhelmed when they stormed the tunnel entrance,
threw the uniforms aside and charged into the fight. The rippling
crashes of the electronic guns rang out again and again, the murky
flashes of the Earth-men's death rays stabbed into the fray, and a
clicking horde of Insect-men charged home with their spiked clubs
swinging.
In an instant the Plaza was in a wild turmoil.... The rippling
crashes of the electronic guns rang out again and again. The
murky flashes of Earth-men's death rays stabbed into the
fray, and a clicking horde of Insect-men charged home with
spiked clubs swinging.

For the first few moments the fighting centered around the scaffold.
Xylon led a charge of picked men down to seize and keep the three
prisoners bound there, Ripon came storming through to effect a
rescue. When the mélee was over, Larry and Pyatt were free and
Xylon had retreated back to the temple steps, but Diana had
disappeared.
"We got the rest of the crew from the Sky Maid and all the men we
could collect at Chotan and crept up to the tunnel mouth," Ripon
panted as he thrust a ray-gun into Larry's hand. "We took the guards
by surprise and killed them before they could warn the valley
behind."
It had been a daring raid, and at first its sheer audacity had carried
it near to complete victory. Now the superior numbers of the guards
were beginning to tell, and more of the troops of Gral-Thala came
pounding up at the double. The crash of the electronic guns became
a steady roar, and bodies were thickly strewn about the blood-
smeared surface of the Plaza of the Four Virgins. Then, with a long-
drawn and sullen shout, the mass of watching Lunarians flung
themselves on the soldiery. Hundreds died, but the others tore the
guards to pieces with their naked hands and then snatched up their
weapons. The people of Gral-Thala had risen against their
oppressors at last!

With the uprising of the people, the battle ceased to be a fight and
became a massacre. The troops were selling their lives, as dearly as
they could, but thousands more citizens carrying improvised
weapons were pouring in from every street and the thing was only a
matter of time. Then, in the rear of the panic stricken mass of
nobles who were fleeing into the temple to make a last stand, while
the vengeful pack bayed at their heels, Larry suddenly saw Xylon!
The tyrant was standing beside one of the great stone columns that
supported the portico of the temple. He held the half naked body of
Diana before him as a shield. The girl's hands were still tied and she
could not pull away. A swarm of Insect-men, who were bounding up
the temple steps, halted as they saw Xylon hold an electronic pistol
to the head of their goddess.
"Keep back or she dies!" he shouted. "She is hostage for our safety!"
Larry lifted his ray-gun, and then lowered it again with a groan. He
dared not shoot with Diana's struggling body in the way. Nor had he
any doubt that Xylon would kill the girl without compunction if
attacked. Xylon began to edge back toward the temple door. Larry
still stood indecisive, the others seemed frozen in their places. Then
another white-and-gold figure darted out from the temple behind
Xylon. The renegade Colton twisted the gun from Xylon's hand!
The thing was over in an instant. Xylon released Diana and turned
on Colton with an oath, and the girl instantly dropped to the ground.
Steel flickered in the sunlight. Xylon drove a long knife home
between Colton's ribs, but before he could dart away Larry's ready
ray-gun struck him down with its blast. His quivering body rolled
slowly down the steps till the Insect-men reached it and literally tore
it into bloody bits.

XVII

The dying Colton was sinking fast. His face was gray as he looked up
with a faint smile at the others who were grouped around him.
"I never was much good," he said faintly. "Guess it just wasn't in the
blood. Gold always led me into twisted paths, and I couldn't resist
Xylon's offer. But it did something to me when I saw the way those
devils were going to torture the girl. Well—I guess I paid my debt at
the end."
"You've paid it—and you'll live to go back to Earth with us," Larry
said. Colton shook his head, his eyes glazing.
"Don't try to kid me. I'm cashing in my checks," he said—and died.
Now that it was all over, Larry felt very tired. He put one arm around
Diana, and leaned back against the base of the column. There was
still some intermittent fighting going on where mobs of vengeful
Lunarians had cornered some of their oppressors, but the victory
was won. Ripon looked about at the carnage with a satisfied smile
and them sheathed his ray-gun.
"It was a good fight!" he said. "I haven't had as much fun since the
time I wrecked a saloon in Port Mahon. Now, young feller, you just
take care of the lady here while I take a squad and get the radium
salts from the store-house."
"And the Sky Maid?" Larry asked.
"That sour-puss Masterson has been standing over the men with a
ray-gun in one hand and my last jug of rum in the other ever since
you left. All the repairs are finished. We start back to Earth as soon
as we can get our cargo aboard."
"Then the people of your planet will be saved?" Diana asked.
"They will be saved. And as soon as the Gray Death is checked I'll
come back for you. Then the Moon will have to get along without its
Goddess for a while."
"I'll be waiting," she said.
*** END OF THE PROJECT GUTENBERG EBOOK GODDESS OF THE
MOON ***

Updated editions will replace the previous one—the old editions


will be renamed.

Creating the works from print editions not protected by U.S.


copyright law means that no one owns a United States
copyright in these works, so the Foundation (and you!) can copy
and distribute it in the United States without permission and
without paying copyright royalties. Special rules, set forth in the
General Terms of Use part of this license, apply to copying and
distributing Project Gutenberg™ electronic works to protect the
PROJECT GUTENBERG™ concept and trademark. Project
Gutenberg is a registered trademark, and may not be used if
you charge for an eBook, except by following the terms of the
trademark license, including paying royalties for use of the
Project Gutenberg trademark. If you do not charge anything for
copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such
as creation of derivative works, reports, performances and
research. Project Gutenberg eBooks may be modified and
printed and given away—you may do practically ANYTHING in
the United States with eBooks not protected by U.S. copyright
law. Redistribution is subject to the trademark license, especially
commercial redistribution.

START: FULL LICENSE


THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg™ mission of promoting the


free distribution of electronic works, by using or distributing this
work (or any other work associated in any way with the phrase
“Project Gutenberg”), you agree to comply with all the terms of
the Full Project Gutenberg™ License available with this file or
online at www.gutenberg.org/license.

Section 1. General Terms of Use and


Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand,
agree to and accept all the terms of this license and intellectual
property (trademark/copyright) agreement. If you do not agree
to abide by all the terms of this agreement, you must cease
using and return or destroy all copies of Project Gutenberg™
electronic works in your possession. If you paid a fee for
obtaining a copy of or access to a Project Gutenberg™
electronic work and you do not agree to be bound by the terms
of this agreement, you may obtain a refund from the person or
entity to whom you paid the fee as set forth in paragraph 1.E.8.

1.B. “Project Gutenberg” is a registered trademark. It may only


be used on or associated in any way with an electronic work by
people who agree to be bound by the terms of this agreement.
There are a few things that you can do with most Project
Gutenberg™ electronic works even without complying with the
full terms of this agreement. See paragraph 1.C below. There
are a lot of things you can do with Project Gutenberg™
electronic works if you follow the terms of this agreement and
help preserve free future access to Project Gutenberg™
electronic works. See paragraph 1.E below.
1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright
law in the United States and you are located in the United
States, we do not claim a right to prevent you from copying,
distributing, performing, displaying or creating derivative works
based on the work as long as all references to Project
Gutenberg are removed. Of course, we hope that you will
support the Project Gutenberg™ mission of promoting free
access to electronic works by freely sharing Project Gutenberg™
works in compliance with the terms of this agreement for
keeping the Project Gutenberg™ name associated with the
work. You can easily comply with the terms of this agreement
by keeping this work in the same format with its attached full
Project Gutenberg™ License when you share it without charge
with others.

1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside
the United States, check the laws of your country in addition to
the terms of this agreement before downloading, copying,
displaying, performing, distributing or creating derivative works
based on this work or any other Project Gutenberg™ work. The
Foundation makes no representations concerning the copyright
status of any work in any country other than the United States.

1.E. Unless you have removed all references to Project


Gutenberg:

1.E.1. The following sentence, with active links to, or other


immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project
Gutenberg™ work (any work on which the phrase “Project
Gutenberg” appears, or with which the phrase “Project
Gutenberg” is associated) is accessed, displayed, performed,
viewed, copied or distributed:

This eBook is for the use of anyone anywhere in the United


States and most other parts of the world at no cost and
with almost no restrictions whatsoever. You may copy it,
give it away or re-use it under the terms of the Project
Gutenberg License included with this eBook or online at
www.gutenberg.org. If you are not located in the United
States, you will have to check the laws of the country
where you are located before using this eBook.

1.E.2. If an individual Project Gutenberg™ electronic work is


derived from texts not protected by U.S. copyright law (does not
contain a notice indicating that it is posted with permission of
the copyright holder), the work can be copied and distributed to
anyone in the United States without paying any fees or charges.
If you are redistributing or providing access to a work with the
phrase “Project Gutenberg” associated with or appearing on the
work, you must comply either with the requirements of
paragraphs 1.E.1 through 1.E.7 or obtain permission for the use
of the work and the Project Gutenberg™ trademark as set forth
in paragraphs 1.E.8 or 1.E.9.

1.E.3. If an individual Project Gutenberg™ electronic work is


posted with the permission of the copyright holder, your use and
distribution must comply with both paragraphs 1.E.1 through
1.E.7 and any additional terms imposed by the copyright holder.
Additional terms will be linked to the Project Gutenberg™
License for all works posted with the permission of the copyright
holder found at the beginning of this work.

1.E.4. Do not unlink or detach or remove the full Project


Gutenberg™ License terms from this work, or any files
containing a part of this work or any other work associated with
Project Gutenberg™.

1.E.5. Do not copy, display, perform, distribute or redistribute


this electronic work, or any part of this electronic work, without
prominently displaying the sentence set forth in paragraph 1.E.1
with active links or immediate access to the full terms of the
Project Gutenberg™ License.

1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if
you provide access to or distribute copies of a Project
Gutenberg™ work in a format other than “Plain Vanilla ASCII” or
other format used in the official version posted on the official
Project Gutenberg™ website (www.gutenberg.org), you must,
at no additional cost, fee or expense to the user, provide a copy,
a means of exporting a copy, or a means of obtaining a copy
upon request, of the work in its original “Plain Vanilla ASCII” or
other form. Any alternate format must include the full Project
Gutenberg™ License as specified in paragraph 1.E.1.

1.E.7. Do not charge a fee for access to, viewing, displaying,


performing, copying or distributing any Project Gutenberg™
works unless you comply with paragraph 1.E.8 or 1.E.9.

1.E.8. You may charge a reasonable fee for copies of or


providing access to or distributing Project Gutenberg™
electronic works provided that:

• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”

• You provide a full refund of any money paid by a user who


notifies you in writing (or by e-mail) within 30 days of receipt
that s/he does not agree to the terms of the full Project
Gutenberg™ License. You must require such a user to return or
destroy all copies of the works possessed in a physical medium
and discontinue all use of and all access to other copies of
Project Gutenberg™ works.

• You provide, in accordance with paragraph 1.F.3, a full refund of


any money paid for a work or a replacement copy, if a defect in
the electronic work is discovered and reported to you within 90
days of receipt of the work.

• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.

1.E.9. If you wish to charge a fee or distribute a Project


Gutenberg™ electronic work or group of works on different
terms than are set forth in this agreement, you must obtain
permission in writing from the Project Gutenberg Literary
Archive Foundation, the manager of the Project Gutenberg™
trademark. Contact the Foundation as set forth in Section 3
below.

1.F.

1.F.1. Project Gutenberg volunteers and employees expend


considerable effort to identify, do copyright research on,
transcribe and proofread works not protected by U.S. copyright
law in creating the Project Gutenberg™ collection. Despite these
efforts, Project Gutenberg™ electronic works, and the medium
on which they may be stored, may contain “Defects,” such as,
but not limited to, incomplete, inaccurate or corrupt data,
transcription errors, a copyright or other intellectual property
infringement, a defective or damaged disk or other medium, a
computer virus, or computer codes that damage or cannot be
read by your equipment.

1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except


for the “Right of Replacement or Refund” described in
paragraph 1.F.3, the Project Gutenberg Literary Archive
Foundation, the owner of the Project Gutenberg™ trademark,
and any other party distributing a Project Gutenberg™ electronic
work under this agreement, disclaim all liability to you for
damages, costs and expenses, including legal fees. YOU AGREE
THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT
LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT
EXCEPT THOSE PROVIDED IN PARAGRAPH 1.F.3. YOU AGREE
THAT THE FOUNDATION, THE TRADEMARK OWNER, AND ANY
DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE LIABLE
TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL,
PUNITIVE OR INCIDENTAL DAMAGES EVEN IF YOU GIVE
NOTICE OF THE POSSIBILITY OF SUCH DAMAGE.

1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you


discover a defect in this electronic work within 90 days of
receiving it, you can receive a refund of the money (if any) you
paid for it by sending a written explanation to the person you
received the work from. If you received the work on a physical
medium, you must return the medium with your written
explanation. The person or entity that provided you with the
defective work may elect to provide a replacement copy in lieu
of a refund. If you received the work electronically, the person
or entity providing it to you may choose to give you a second
opportunity to receive the work electronically in lieu of a refund.
If the second copy is also defective, you may demand a refund
in writing without further opportunities to fix the problem.

1.F.4. Except for the limited right of replacement or refund set


forth in paragraph 1.F.3, this work is provided to you ‘AS-IS’,
WITH NO OTHER WARRANTIES OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.

1.F.5. Some states do not allow disclaimers of certain implied


warranties or the exclusion or limitation of certain types of
damages. If any disclaimer or limitation set forth in this
agreement violates the law of the state applicable to this
agreement, the agreement shall be interpreted to make the
maximum disclaimer or limitation permitted by the applicable
state law. The invalidity or unenforceability of any provision of
this agreement shall not void the remaining provisions.

1.F.6. INDEMNITY - You agree to indemnify and hold the


Foundation, the trademark owner, any agent or employee of the
Foundation, anyone providing copies of Project Gutenberg™
electronic works in accordance with this agreement, and any
volunteers associated with the production, promotion and
distribution of Project Gutenberg™ electronic works, harmless
from all liability, costs and expenses, including legal fees, that
arise directly or indirectly from any of the following which you
do or cause to occur: (a) distribution of this or any Project
Gutenberg™ work, (b) alteration, modification, or additions or
deletions to any Project Gutenberg™ work, and (c) any Defect
you cause.

Section 2. Information about the Mission


of Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new
computers. It exists because of the efforts of hundreds of
volunteers and donations from people in all walks of life.

Volunteers and financial support to provide volunteers with the


assistance they need are critical to reaching Project
Gutenberg™’s goals and ensuring that the Project Gutenberg™
collection will remain freely available for generations to come. In
2001, the Project Gutenberg Literary Archive Foundation was
created to provide a secure and permanent future for Project
Gutenberg™ and future generations. To learn more about the
Project Gutenberg Literary Archive Foundation and how your
efforts and donations can help, see Sections 3 and 4 and the
Foundation information page at www.gutenberg.org.

Section 3. Information about the Project


Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-
profit 501(c)(3) educational corporation organized under the
laws of the state of Mississippi and granted tax exempt status
by the Internal Revenue Service. The Foundation’s EIN or
federal tax identification number is 64-6221541. Contributions
to the Project Gutenberg Literary Archive Foundation are tax
deductible to the full extent permitted by U.S. federal laws and
your state’s laws.

The Foundation’s business office is located at 809 North 1500


West, Salt Lake City, UT 84116, (801) 596-1887. Email contact
links and up to date contact information can be found at the
Foundation’s website and official page at
www.gutenberg.org/contact
Section 4. Information about Donations to
the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission
of increasing the number of public domain and licensed works
that can be freely distributed in machine-readable form
accessible by the widest array of equipment including outdated
equipment. Many small donations ($1 to $5,000) are particularly
important to maintaining tax exempt status with the IRS.

The Foundation is committed to complying with the laws


regulating charities and charitable donations in all 50 states of
the United States. Compliance requirements are not uniform
and it takes a considerable effort, much paperwork and many
fees to meet and keep up with these requirements. We do not
solicit donations in locations where we have not received written
confirmation of compliance. To SEND DONATIONS or determine
the status of compliance for any particular state visit
www.gutenberg.org/donate.

While we cannot and do not solicit contributions from states


where we have not met the solicitation requirements, we know
of no prohibition against accepting unsolicited donations from
donors in such states who approach us with offers to donate.

International donations are gratefully accepted, but we cannot


make any statements concerning tax treatment of donations
received from outside the United States. U.S. laws alone swamp
our small staff.

Please check the Project Gutenberg web pages for current


donation methods and addresses. Donations are accepted in a
number of other ways including checks, online payments and
credit card donations. To donate, please visit:
www.gutenberg.org/donate.

Section 5. General Information About


Project Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could
be freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose
network of volunteer support.

Project Gutenberg™ eBooks are often created from several


printed editions, all of which are confirmed as not protected by
copyright in the U.S. unless a copyright notice is included. Thus,
we do not necessarily keep eBooks in compliance with any
particular paper edition.

Most people start at our website which has the main PG search
facility: www.gutenberg.org.

This website includes information about Project Gutenberg™,


including how to make donations to the Project Gutenberg
Literary Archive Foundation, how to help produce our new
eBooks, and how to subscribe to our email newsletter to hear
about new eBooks.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookname.com

You might also like