Ver Mensaje Individual
  #19  
Antiguo 12-12-2009
oswaldo77_77 oswaldo77_77 is offline
Registrado
 
Registrado: dic 2009
Posts: 2
Reputación: 0
oswaldo77_77 Va por buen camino
RE: siguiendo con el tema de los punteros

Holas de nuevo

Introduje un tema, en el foro de APIs, pero mas me parece que pertenece a este grupo (y ya lo dije)

El problema basicamente, es que tengo una estructura de registro llamada .... definida en una unidad TAPI.pas, con ella consigo hacer todo, excepto la finalidad, obtener un numero, esta es la estructura:

Código:
 
  LPLineCallInfo = ^TLineCallInfo;                   
  TLineCallInfo = record
    dwTotalSize,
    dwNeededSize,
    dwUsedSize: Longint;
    hLine: THLine;
    dwLineDeviceID,
    dwAddressID,
    dwBearerMode,
    dwRate,
    dwMediaMode,
    dwAppSpecific,
    dwCallID,
    dwRelatedCallID,
    dwCallParamFlags,
    dwCallStates,
    dwMonitorDigitModes,
    dwMonitorMediaModes: Longint;
    DialParams: TLineDialParams;
    dwOrigin,
    dwReason,
    dwCompletionID,
    dwNumOwners,
    dwNumMonitors,
    dwCountryCode,
    dwTrunk,
    dwCallerIDFlags,
    dwCallerIDSize,
    dwCallerIDOffset,
    dwCallerIDNameSize,
    dwCallerIDNameOffset,
    dwCalledIDFlags,
    dwCalledIDSize,
    dwCalledIDOffset,
    dwCalledIDNameSize,
    dwCalledIDNameOffset,
    dwConnectedIDFlags,
    dwConnectedIDSize,
    dwConnectedIDOffset,
    dwConnectedIDNameSize,
    dwConnectedIDNameOffset,
    dwRedirectionIDFlags,
    dwRedirectionIDSize,
    dwRedirectionIDOffset,
    dwRedirectionIDNameSize,
    dwRedirectionIDNameOffset,
    dwRedirectingIDFlags,
    dwRedirectingIDSize,
    dwRedirectingIDOffset,
    dwRedirectingIDNameSize,
    dwRedirectingIDNameOffset,
    dwAppNameSize,
    dwAppNameOffset,
    dwDisplayableAddressSize,
    dwDisplayableAddressOffset,
    dwCalledPartySize,
    dwCalledPartyOffset,
    dwCommentSize,
    dwCommentOffset,
    dwDisplaySize,
    dwDisplayOffset,
    dwUserUserInfoSize,
    dwUserUserInfoOffset,
    dwHighLevelCompSize,
    dwHighLevelCompOffset,
    dwLowLevelCompSize,
    dwLowLevelCompOffset,
    dwChargingInfoSize,
    dwChargingInfoOffset,
    dwTerminalModesSize,
    dwTerminalModesOffset,
    dwDevSpecificSize,
    dwDevSpecificOffset: Longint;
    dwCallTreatment,                                { TAPI v2.0 }
    dwCallDataSize,                                 { TAPI v2.0 }
    dwCallDataOffset,                               { TAPI v2.0 }
    dwSendingFlowspecSize,                          { TAPI v2.0 }
    dwSendingFlowspecOffset,                        { TAPI v2.0 }
    dwReceivingFlowspecSize,                        { TAPI v2.0 }
    dwReceivingFlowspecOffset: Longint;             { TAPI v2.0 }
  end;
La logro usar asi:

Código:
 
              var
              wLPCALLINFO:  TLineCallInfo;
              r:            Integer;

              r:=LineGetCallInfo(hCall, wLPCALLINFO);
Y como me devuelve el offset y el size en:

Código:
 
              wNum:=wLPCALLINFO.dwCallerIDSize;
              wNum:=wLPCALLINFO.dwCallerIDOffset;
trato de acceder a el valor del numero telefonico, que se supone debería de obtenerlo en una formula mas o menos asi:

Código:
              www:=copy(StrPas(PChar(@wlpCallInfo)+wLPCALLINFO.dwCalledIDOffset),1,wLPCALLINFO.dwCalledIDSize);
Como veis el problema es acceder ese valor, no se como hacerlo. Este problema es basicamente manejo de punteros.

Aver si alguien me echa una mano. gracias.

Osw
Responder Con Cita