Montag, 15. September 2008

Security Updates für VFP8 und VFP9

In seinem aktuellen 'Letter from the Editor' hat Milind Lele (Visual Foxpro und Visual Studio Program Manager) drei Patches zu Visual Foxpro veröffentlicht.

Die Patches stehen für VFP 8 SP1, VFP9 SP1 und VFP9 SP2 zur Verfügung.

Rick Schummer vermutet, da es sich in allen drei Fällen um eine gepatchte GDIplus.dll handelt, dass der Download einer einzigen Patchdatei genügt, ist sich bisher jedoch nicht zu 100% sicher. Da die drei Patchdateien jeweils 1.944 KB gross sind, müssen wir aber kein Risiko eingehen. Die 6 MB sollten sicherlich noch auf jeden Rechner draufpassen.

Hier geht es zu Milind Lele's 'Latest News from the Visual Foxpro Team' http://msdn.microsoft.com/en-us/vfoxpro/bb264582.aspx

VFPx Poll von Andrew MacNeill

Offensichtlich ist die VFPx Initiative um Open Source Add-Ons für VFP auf Microsoft's Codeplex bereitzustellen, noch längst nicht so vielen Entwicklern bekannt wie bisher eigentlich zu erwarten gewesen wäre. Aus diesem Grund hat Andrew MacNeill einen kleinen Poll eingerichtet, bei dem jeder Visual Foxpro Entwickler aufgerufen ist, seine Stimme abzugeben.

Hier geht es zu Andrew's Poll:
http://meltech.freepolls.com/cgi-bin/polls/035/poll_center.htm

Hier gehts zu Andrew's Blog:
http://akselsoft.blogspot.com/2008/09/vfpx-poll.html

Hier nochmals der Link zu VFPX auf Codeplex:
http://www.codeplex.com/Wiki/View.aspx?ProjectName=VFPX

ALSO: Nichts wie hin!!! ;-)

Mittwoch, 3. September 2008

Erzeugen von UNC Pfadnamen / Creating UNC pathnames

Im folgenden Posting geht es um die Konvertierung von Verzeichnisnamen die auf gemappte Laufwerke zugreifen.

Mit Hilfe der WIN32API können wir über die dort verfügbare Funktion WNetGetConnection den UNC Namen ( Universal/Uniform Naming Convention ) einer solchen Verbindung abfragen.


FUNCTION GetUNCPath
LPARAMETERS vMappedName as String
  * // Datendeklaration und Initialisierung
  LOCAL    lcUNCBuffer as String, liLength as Integer, ;
          lcUNCName as String, llContinue as Boolean, ;
          lcMessage as String
  lcUNCBuffer    = []
  liLength    = 0
  lcUNCName    = []
  llContinue    = .T.
  lcMessage    = []
  * // Deklaration der API-Funktion
  TRY
      DECLARE INTEGER WNetGetConnection IN WIN32API ;
              STRING @ lpLocalName, ;
              STRING @ lpRemoteName, ;
              INTEGER @ lpliLength
  CATCH
      TEXT TO lcMessage NOSHOW TEXTMERGE PRETEXT 2
           Deklaration von WNetGetConnection in WIN32API
           ist fehlgeschlagen. Funktion wird vorzeitig beendet.
      ENDTEXT
      MESSAGEBOX(lcMessage,0+16+0,[Information])
      llContinue = .F.
  ENDTRY
  * // Umsetzung des lokalen Pfades in einen UNC Pfad
  IF llContinue
      IF !EMPTY(m.vMappedName) AND VARTYPE([m.vMappedName]) = [C]
          lcUNCBuffer        = REPL(CHR(0),261)
          liLength        = LEN(lcUNCBuffer)
          m.vMappedName    = ALLTRIM(m.vMappedName)
          IF LEN(m.vMappedName) = 1
              m.vMappedName = m.vMappedName + [:]
          ENDIF
          TRY
              IF WNetGetConnection(m.vMappedName, @lcUNCBuffer, @liLength) = 0
                 lcUNCName = LEFT(lcUNCBuffer,AT(CHR(0),lcUNCBuffer)-1)
              ENDIF
          CATCH
              TEXT TO lcMessage NOSHOW TEXTMERGE PRETEXT 2
                   Aufruf von WNetGetConnection in WIN32API
                   ist fehlgeschlagen. UNC-Pfad konnte nicht
                   generiert werden.
              ENDTEXT
              MESSAGEBOX(lcMessage,0+16+0,[Information])
          ENDTRY
      ENDIF
  ENDIF
  RETURN lcUNCName
ENDFUNC