Here's a quick trick to peak inside an application: Do a #import somewhere in Visual Studio and then examine the resulting IDL in the .tlh file after the compile.
I did this for the free version of Google Earth and got a googleearth.tlh. This exposed a basic COM interface. There is not much to control, but the following will give you some idea. (Sorry about the formatting of the long string. It looks ugly, but I'm sure you get the idea. Any KML is valid in this string, by the way.)
// testing LoadKml()
BSTR kmlData = ::SysAllocString(L"
googleEarth->LoadKml(&kmlData); // loads the string
// change the view to the above area
IKHViewInfoPtr viewInfo = googleEarth->currentView;
viewInfo->latitude = 36.06778704771370;
viewInfo->longitude = -112.0870267752693;
viewInfo->range = 5000;
viewInfo->tilt = 45;
viewInfo->azimuth = 0;
googleEarth->setView(viewInfo, 0.1); // 0.1 is the speed
// open a file
Remember you'll need a CoInitialize before this.
Update: Steve is controlling Google Earth using JScript.