Corri tu codigo desde FWH 11.04 y WVista, no me aparece ningun error pero no muestra el video, asi que segun yo el error no esta en FWH12.09
Yo uso el siguiente codigo que corre bien en Vista pero no en W7, cambia los ":" por ":" ya que no se porque los pone asi
//-----------------------------------------------------------------------------
//Muestra videos del animal
STATIC FUNCTION TarA_MV(aTDBF,oDlgA) //Arreglo para los campos
LOCAL oWndV,oActiveX,oBarV,oBtnXDef,oBtnA,oSayN,oBtnP
//Proceso para mostrar videos
aTDBF[DfFot]:="Mostrando videos..." ; oDlgA:UPDATE()
DEFINE WINDOW oWndV MDICHILD FROM 0,0 TO 524,420 OF M->VP[VP_oVPr] PIXEL TITLE "Videos "+aTDBF[DDesA] HELPID "HID_TarAni_MFV"
DEFINE BUTTONBAR oBarV 3D SIZE 58,58 OF oWndV
//Botones para terminar
DEFINE BUTTON oBtnXDef FILENAME DirSist+"BSalir.BMP" OF oBarV ;
ACTION oWndV:END() TOOLTIP "Cerrar la ventana y Salir" //Salva el estado de las columnas del listado y se sale
//Define resto de la ventana
@ 58,0 ACTIVEX oActiveX PROGID "MediaPlayer.MediaPlayer.1" OF oWndV SIZE 400,400
@ 463,0 BUTTON oBtnA PROMPT "<" SIZE 20,20 OF oWndV PIXEL UPDATE ; //Boton para ver el video anterior
ACTION ( aTDBF[DnVid]-=1 ; //No. del video anterior
,TarA_MVP(oActiveX,aTDBF),aTDBF:=TarA_DF(aTDBF) ; //Corre el video
,oWndV:UPDATE(),oWndV:aEvalWhen() ) ; //Refresca la ventana
MESSAGE "Ver el video anterior" WHEN ( aTDBF[DnVid]>1 )
@ 466,25 SAY oSayN VAR aTDBF[DfVid] OF oWndV UPDATE PIXEL COLOR "B/W"
@ 463,380 BUTTON oBtnP PROMPT ">" SIZE 20,20 OF oWndV PIXEL UPDATE ; //Boton para ver el Video posterior
ACTION ( aTDBF[DnVid]+=1 ; //No. del video posterior
,TarA_MVP(oActiveX,aTDBF),aTDBF:=TarA_DF(aTDBF) ; //Corre el video
,oWndV:UPDATE(),oWndV:aEvalWhen() ) ; //Refresca la ventana
MESSAGE "Ver el video posterior" WHEN ( aTDBF[DnVid]<LEN(aTDBF[DaVid]) )
ACTIVATE WINDOW oWndV ;
ON RESIZE (TarA_ResizeV(oWndV,oActiveX,oBtnA,oSayN,oBtnP)) ; //Ajusta el Video,BotonAnt,NombVideo,BotonPos al tamaño de la ventana
ON INIT ( TarA_MVP(oActiveX,aTDBF),ColocaMB(oBtnXDef) ) ;
VALID( oActiveX:END(),oBarV:END(),aTDBF[DFoVi]:=1,TarA_DF(aTDBF),oDlgA:UPDATE(),oDlgA:aEvalWhen(),.T. ) //Al avandonar la ventana del video, Cierra el objeto video, Define que esta mostrando fotos, Define la foto a mostrar
RETURN(aTDBF)
//-----------------------------------------------------------------------------
//Define Nombre del archivo de la Foto/Video a mostrar
STATIC FUNCTION TarA_DF(aTDBF) //Arreglo para los campos
IF EMPTY(aTDBF[DaVid]) //Si no hay viedos
aTDBF[DfVid]:=""
ELSE
aTDBF[DfVid]:="Video: "+LTRIM(STR(aTDBF[DnVid]))+"/"+LTRIM(STR(LEN(aTDBF[DaVid])))+" - "+STRTRAN(aTDBF[DaVid,aTDBF[DnVid]],DirVide,"") //Regresa el nombre del archivo que contiene el video
ENDIF
RETURN(aTDBF)
//-----------------------------------------------------------------------------
//Activa propiedades del video a mostrar
STATIC FUNCTION TarA_MVP(oActiveX,aTDBF) //Objeto ActiveX, Arreglo con campos
oActiveX:AllowChangeDisplaySize:=.T.
oActiveX:AutoSize:=.T. //El tamaño del video sera automatico? Debe estar activado AllowChangeDisplaySize:=.T.
oActiveX:DisplaySize:=7 //
oActiveX:ShowControls:=.T. //Se muestran los controles del video principales? (Play, Pausa, Stop)
oActiveX:AllowScan:=.T. //Activa/Desactiva el modo para ser usado con ShowPositionControls:=.T. (Funciona con WMV. No con AVI,MPG)
oActiveX:ShowPositionControls:=.T. //Se muestran los controles de video para mover su posicion?. AllowScan:=.T. debe estar activado (IrAlInicio, RegresoRaripo, AvenceRapido, IrAlFinal)
oActiveX:ShowStatusBar:=.T. //Se muestra la linea que contiene el estado del video? (Nombre del video, Tiempo reproducido/Tiempo total)
oActiveX:SetProp("FileName",aTDBF[DaVid,aTDBF[DnVid]])
oActiveX:Do("Play")
RETURN(NIL)
//----------------------------------------------------------------------------//
//Ajusta tamaño de los componentes de la ventana
STATIC FUNCTION TarA_ResizeV(oWndV,oActiveX,oBtnA,oSayN,oBtnP) //Ventana,Video,BotonAnt,NombVideo,BotonPos
LOCAL oRect:=oWndV:GetCliRect(M->VP[VP_oVPr])
oActiveX:Move(58,0,oRect:nRight-oRect:nLeft-5,oRect:nBottom-oRect:nTop-90,.T.) //Mueve la ventana del video
oBtnA:Move(oRect:nBottom-25,0,,,.T.) //Mueve el Boton para ver el video anterior
oSayN:Move(oRect:nBottom-22,25,,,.T.) //Mueve el lugar donde se muestra el nombre del archivo
oBtnP:Move(oRect:nBottom-25,oRect:nRight-25,,,.T.) //Mueve el Boton para ver el video posterior
RETURN(NIL)