>Local pGUID,rGUID,lpVersionInfo,lcOldError,llNewVersion,lcReturn >Declare Integer CoCreateGuid In 'OLE32.dll' String @pguid >Declare Integer StringFromGUID2 In 'OLE32.dll' String rguid, String @lpsz, Integer cchMax >Declare Short GetVersionEx In win32API String @ lpVersionInfo >Declare Integer UuidCreateSequential In 'RPCRT4.dll' String @ Uuid >lpVersionInfo = Chr(128+5*4)+Replicate(Chr(0),128+5*4-1) >GetVersionEx(@lpVersionInfo) >pGUID=Replicate(Chr(0),16) >rGUID=Replicate(Chr(0),80) >m.lcOldError = On("Error") >llNewVersion = .T. >On Error llNewVersion = .F. >lcReturn = Substr(Iif(UuidCreateSequential(@pGUID)=0 .and. StringFromGUID2(pGUID,@rGUID,40)#0,Strconv(Left(rGUID,76),6),""),26,12) >If llNewVersion = .F. > lcReturn = Substr(Iif(CoCreateGuid(@pGUID)=0 .and. StringFromGUID2(pGUID,@rGUID,40)#0,Strconv(Left(rGUID,76),6),""),26,12) >EndIf >On Error &lcOldError >Return lcReturn >>
*... >m.lcOldError = On("Error") On Error ; lcReturn = Substr(Iif(CoCreateGuid(@pGUID)=0 .and. ; StringFromGUID2(pGUID,@rGUID,40)#0,Strconv(Left(rGUID,76),6),""),26,12) lcReturn = Substr(Iif(UuidCreateSequential(@pGUID)=0 .and. ; StringFromGUID2(pGUID,@rGUID,40)#0,Strconv(Left(rGUID,76),6),""),26,12) On Error &lcOldError Return lcReturnCetin