Pulling what is left of my hair out with this COM stuff.
All I want to do today to read the TIMESCALE value from the
Outlook Calendar.
Code below compiles and runs but always shows 0 for the Time Scale.
Code:
#COMPILE EXE #DIM ALL #INCLUDE "WIN32API.INC" #INCLUDE "Outlook.Inc" FUNCTION PBMAIN () AS LONG LOCAL ProgID_OutlookApplication AS STRING LOCAL Outlook AS OutlookApplication LOCAL olCalView AS OutlookCalendarView LOCAL olNameSpace AS OutlookNameSpace LOCAL vNameSpace AS VARIANT LOCAL vType AS VARIANT LOCAL vTimeScale AS VARIANT LOCAL vVNT AS VARIANT ProgID_OutlookApplication = PROGID$(CLSID$("Outlook.Application")) IF LEN(ProgID_OutlookApplication) = 0 THEN ProgID_OutlookApplication = "Outlook.Application" SET Outlook = OutlookApplication IN ProgID_OutlookApplication IF ISFALSE ISOBJECT(Outlook) THEN SET Outlook = NEW OutlookApplication IN ProgID_OutlookApplication IF ISFALSE ISOBJECT(Outlook) THEN MSGBOX "Unable to open or start Outlook!" EXIT FUNCTION END IF vType = "MAPI" OBJECT CALL Outlook.GetNameSpace(vType) TO vNameSpace SET olNameSpace = vNameSpace OBJECT CALL olNameSpace.Logon OBJECT GET Outlook.ActiveExplorer.CurrentView TO vVNT SET olCalView = vVNT OBJECT GET olCalView.DayWeekTimeScale TO vTimeScale MSGBOX FORMAT$(VARIANT#(vTimeScale)) OBJECT CALL olNameSpace.Logoff SET Outlook = NOTHING SET olNameSPace = NOTHING END FUNCTION