Initialization Code

procedure TMainForm.FormCreate(Sender: TObject);
var
  dwVer, hr: HResult;
begin
  m_fOleInitialized := false;
  dwVer := CoBuildVersion;
  
  if rmm <> HIWORD(Longint(dwVer)) then
    ShowMessage('Invalid OLE library version');
  else begin
    if FAILEDHR(CoInitialize(nil)) then
      ShowMessage('Failed OLE library initialization');
    else
      m_fOleInitialized := true;
  end;
end;

Termination Code

procedure TMainForm.FormDestroy(Sender: TObject);
begin
  if m_fOleInitialized then
    OleUninitialize;
  ...
end;

