Calvin Hsia's WebLog
thoughts from a professional developer
Create multiple threads from within your application
When I posted this Sample program to create multiple threads, I knew the inevitable follow-up...
Author: CalvinH Date: 05/16/2006
Sample program to create multiple threads
I used the CreateThread call and the Heap functions to create a simple sample program that spawns a...
Author: CalvinH Date: 05/11/2006
What API calls reset GetLastError between Declare DLL calls in VFP8?
I received a comment on this post: Will GetLastError ever work properly in VFP8.0?. I was...
Author: CalvinH Date: 05/03/2006
Edit and Continue in VFP can save you time
Sometimes it takes many steps to reproduce a problem. Perhaps you have to start an application, log...
Author: CalvinH Date: 05/01/2006
More DECLARE DLL performance discussion
In this post DECLARE DLL performance questions I asked whether using the WIN32API keyword or the...
Author: CalvinH Date: 04/27/2006
DECLARE DLL performance questions
I was writing a sample about DECLARE DLL to show some of its features which I implemented about 12...
Author: CalvinH Date: 04/24/2006
Using Foxpro to query line lengths
I was reviewing some code changes, and I noticed some of the lines were quite different in length. I...
Author: CalvinH Date: 04/20/2006
SQL Server interpreter sample
I was writing some code to test Microsoft SQL Server: SQL Server 2005 Express Edition (which I...
Author: CalvinH Date: 04/12/2006
Today's Quiz. How many times is a user function called?
Run the code below. How many times is the function FOO called? Why? The first SELECT is a single...
Author: CalvinH Date: 04/10/2006
Can you keep a server around after it's been released?
I received a question from a reader: I decided to extend my VPF9SP1 application to support OLE...
Author: CalvinH Date: 04/07/2006
Microsoft Sudoku article
Several months ago, I wrote The mechanics of Sudoku and Sudoku puzzles screen capture. As a result,...
Author: CalvinH Date: 04/03/2006
Modify resource file entries
In my prior two posts (This code queries the foxuser resource file. What does it do? and More...
Author: CalvinH Date: 03/31/2006
More Resource file data mining
Here’s some more code to mine the data in your resource file. There are more settings at various...
Author: CalvinH Date: 03/28/2006
This code queries the foxuser resource file. What does it do?
#if 0 What does the code below do? Here's a clue Unknown, Command, File, Label, Menu, Query, Report,...
Author: CalvinH Date: 03/25/2006
My daughter's soccer schedule
I received an email forwarded from my wife with my daughter’s soccer schedule. Of course it had been...
Author: CalvinH Date: 03/22/2006
How do large programs work?
When you write code in any computer language, there are common constructs that alter the flow of...
Author: CalvinH Date: 03/20/2006
Creating your own web browser for your SmartPhone
I like my Cingular 2125 SmartPhone (see Windows SmartPhone can run my Web Apps). I went to Microsoft...
Author: CalvinH Date: 03/17/2006
Collecting garbage at the wrong time
In this post: Heartbeat: Garbage collection in VFP and .NET are similar, I talked about how the VFP...
Author: CalvinH Date: 03/15/2006
Using Very large programs
Sometimes VFP users create programs that are very large. The limit in earlier versions of VFP was...
Author: CalvinH Date: 03/13/2006
Will GetLastError ever work properly in VFP8.0?
For this post: GetLastError: how does it work with DECLARE DLL ?, I received this question: I was...
Author: CalvinH Date: 03/10/2006
Why does BINDEVENT not work with StatusBar_Change?
A customer had a question and sent some code: PUBLIC oHandler oHandler = NEWOBJECT("StatusBarText")...
Author: CalvinH Date: 03/08/2006
Why doesn't drag/drop work with BindEvents?
In this post: Is this a bug in BindEvents? I asked why drag/drop wasn’t working. The code to...
Author: CalvinH Date: 03/03/2006
Windows SmartPhone can run my Web Apps
I took my family to Whistler for some great skiing. Because our cell phones didn’t work too reliably...
Author: CalvinH Date: 03/02/2006
Is this a bug in BindEvents?
(been away skiing with my family) A customer reported this as a bug in BindEvent. Run the code...
Author: CalvinH Date: 02/27/2006
Use an IStream object to avoid disk access
Programs need to read and write data. Sometimes the data storage is only used temporarily. If the...
Author: CalvinH Date: 02/17/2006
Is there a 1 Megabyte limit on memo fields using the OleDB provider?
I received a question: My customer is under the impression that there is a size limit (of about 1...
Author: CalvinH Date: 02/10/2006
Customize the VS debugger display of your data
As a software developer, I spend much of my time looking at code, learning how it works, and...
Author: CalvinH Date: 02/06/2006
What about index key distribution?
Mike Potjer wins the prize! His explanation of the non-random nature of SYS(2015) is why it’s not a...
Author: CalvinH Date: 02/02/2006
Index creation performance issues
In this post: Index creation performance question I asked: Is it faster to fill a table with values,...
Author: CalvinH Date: 01/31/2006
Find all statically linked libraries required before your process can start
There’s some code in this post What external code does your EXE depend on? that determines all the...
Author: CalvinH Date: 01/30/2006
Index creation performance question
Is it faster to fill a table with values, then index it or create the index on an empty table, then...
Author: CalvinH Date: 01/27/2006
Why did we limit the command window history length?
In this post: You can hit enter anywhere on the line in the command window, I talked about the...
Author: CalvinH Date: 01/26/2006
What external code does your EXE depend on?
In the old days, when you wrote a program, you had full control over the CPU. The Instruction...
Author: CalvinH Date: 01/25/2006
Is there a way in VFP to pass a DWORD to an API function from VFP?
A customer asked: Is there a way in VFP to pass a DWORD to an API function from VFP? The Beep API...
Author: CalvinH Date: 01/24/2006
Create your own typing tutor!
Here’s an idea to teach somebody the positions of the letters on the keyboard: letters fly in...
Author: CalvinH Date: 01/23/2006
Change the default screen saver
After booting up Windows XP and before I’ve logged on, or when I connect via remote desktop to a...
Author: CalvinH Date: 01/20/2006
Carburetor is a car part, but prosecutable is not
My wife and I like to listen to PuzzleMaster Will Shortz.on NPR. This week’s challenge is from one...
Author: CalvinH Date: 01/19/2006
Digging through old code: Chess program
There is a lot of waiting for parents at a chess tournament (see Eliminating Fire Alarm sound at...
Author: CalvinH Date: 01/18/2006
Phone number and wife haven't changed in 11 years
There’s a sporting goods store that I’ve visited on occasion over the last 11 years. It’s a...
Author: CalvinH Date: 01/17/2006
You can hit enter anywhere on the line in the command window
The Fox Command window maintains a history of prior commands. (A quick search of the source code...
Author: CalvinH Date: 01/13/2006
Remote Desktop and Offscreen Bitmaps
I read Raymond’s blog: Taxes: Remote Desktop Connection and painting, in which he describes...
Author: CalvinH Date: 01/12/2006
Detecting Workstation state changes
I read Raymond’s post about detecting workstation events:...
Author: CalvinH Date: 01/11/2006
Grid Cell Alignment response
This post: Is this a bug in the Grid Cell alignment? discusses a grid cell alignment issue. When the...
Author: CalvinH Date: 01/09/2006
Is this a bug in the Grid Cell alignment?
Run the code below. It creates a grid with 2 rows and 2 columns. Move your cursor between rows and...
Author: CalvinH Date: 01/06/2006
Publishing blog statistics horror story
I received an email from someone at Microsoft this morning about the availability of the Excel...
Author: CalvinH Date: 01/05/2006