Вверх ↑
Этот топик читают: Гость
Ответов: 1891
Рейтинг: 110
#16: 2010-07-30 16:33:30 ЛС | профиль | цитата
Muz-Tv, спасибо, посмотрю.
карма: 0
%time%
0
Гость
Ответов: 17029
Рейтинг: 0
#17: 2010-07-31 17:33:58 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-10 14:08:14
карма: 0

0
Ответов: 23
Рейтинг: 3
#18: 2010-07-31 19:46:13 ЛС | профиль | цитата
сама dll http://hiasm.com/xf/attach/share/MediaInfo.zip

Исходники dll https://mediainfo.svn.sourceforge.net/svnroot/mediainfo/

Вот ешо но тут уже описание есть что выводит ( почти одно и тоже с MediaInfoDLL.pas )

code_19774.txt
------------ Дoбавленo в 19.46:
Помогите составить запрос примера от nesco оказалось мало для новичка (
Вот что удалось составить и то это может все неправильно


#pas
unit MediaInfoDll;

interface

uses kol,Share,Debug,Windows;
type
THiBeholdDu = class(TDebug)
private

public
_event_Open:THI_Event;
_event_Close:THI_Event;
_event_Inform:THI_Event;
_event_GetI:THI_Event;
_event_Get:THI_Event;
_event_Option:THI_Event;
_event_State_Get:THI_Event;
_event_Count_Get:THI_Event;

procedure _work_Open(var Data:TData; index:word);
procedure _work_Close(var Data:TData; index:word);
procedure _work_GetI(var Data:TData; index:word);
procedure _work_Get(var Data:TData; index:word);
procedure _work_Option(var Data:TData; index:word);
procedure _work_State_Get(var Data:TData; index:word);
procedure _work_Count_Get(var Data:TData; index:word);
end;

implementation

function MediaInfo_Open(Handle: Cardinal; File__: PWideChar): Cardinal cdecl; external 'MediaInfo.Dll';
procedure MediaInfo_Close(Handle: Cardinal) cdecl; external 'MediaInfo.Dll';
function MediaInfo_Inform(Handle: Cardinal; Reserved: Integer): PWideChar cdecl; external 'MediaInfo.Dll';
function MediaInfo_GetI(Handle: Cardinal; StreamKind: TMIStreamKind; StreamNumber: Integer; Parameter: Integer; KindOfInfo: TMIInfo): PWideChar cdecl; external 'MediaInfo.Dll'; //Default: KindOfInfo=Info_Text
function MediaInfo_Get(Handle: Cardinal; StreamKind: TMIStreamKind; StreamNumber: Integer; Parameter: PWideChar; KindOfInfo: TMIInfo; KindOfSearch: TMIInfo): PWideChar cdecl; external 'MediaInfo.Dll'; //Default: KindOfInfo=Info_Text, KindOfSearch=Info_Name
function MediaInfo_Option(Handle: Cardinal; Option: PWideChar; Value: PWideChar): PWideChar cdecl; external 'MediaInfo.Dll';
function MediaInfo_State_Get(Handle: Cardinal): Integer cdecl; external 'MediaInfo.Dll';
function MediaInfo_Count_Get(Handle: Cardinal; StreamKind: TMIStreamKind; StreamNumber: Integer): Integer cdecl; external 'MediaInfo.Dll';

procedure MediaInfoDll._work_Open;
var


begin
Ukey:=MediaInfo_New();
_hi_OnEvent(_event_Open,Ukey);
end;



карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#19: 2010-07-31 20:46:26 ЛС | профиль | цитата
Bacek, а ты описание функций не знаешь, где найти
карма: 22

0
Гость
Ответов: 17029
Рейтинг: 0
#20: 2010-07-31 21:13:32 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-10 14:08:15
карма: 0

0
Ответов: 23
Рейтинг: 3
#21: 2010-07-31 21:15:53 ЛС | профиль | цитата
net72.78.95-134.chelny.er писал(а):

чет не залилось (

//Two versions :
//MediaInfo_* : Unicode
//MediaInfoA_* : Ansi
//If you prefer Ansi version (PChar instead of PWideChar), replace MediaInfo_ by MediaInfoA_

unit HowToUse_Dll_;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, MediaInfoDll;

type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Dйclarations privйes }
public
{ Dйclarations publiques }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
Handle: Cardinal;
To_Display: WideString;
CR: WideString;
begin
CR:=Chr(13) + Chr(10);

if (MediaInfoDLL_Load('MediaInfo.dll')=false) then
begin
Memo1.Text := 'Error while loading MediaInfo.dll';
exit;
end;


To_Display := MediaInfo_Option (0, 'Info_Version', '');

To_Display := To_Display + CR + CR + 'Info_Parameters' + CR;
To_Display := To_Display + MediaInfo_Option (0, 'Info_Parameters', '');

To_Display := To_Display + CR + CR + 'Info_Capacities' + CR;
To_Display := To_Display + MediaInfo_Option (0, 'Info_Capacities', '');

To_Display := To_Display + CR + CR + 'Info_Codecs' + CR;
To_Display := To_Display + MediaInfo_Option (0, 'Info_Codecs', '');

Handle := MediaInfo_New();

To_Display := To_Display + CR + CR + 'Open' + CR;
To_Display := To_Display + format('%d', [MediaInfo_Open(Handle, 'Example.ogg')]);

To_Display := To_Display + CR + CR + 'Inform with Complete=false' + CR;
MediaInfo_Option (0, 'Complete', '');
To_Display := To_Display + MediaInfo_Inform(Handle, 0);

To_Display := To_Display + CR + CR + 'Inform with Complete=true' + CR;
MediaInfo_Option (0, 'Complete', '1');
To_Display := To_Display + MediaInfo_Inform(Handle, 0);

To_Display := To_Display + CR + CR + 'Custom Inform' + CR;
MediaInfo_Option (0, 'Inform', 'General;Example : FileSize=%FileSize%');
To_Display := To_Display + MediaInfo_Inform(Handle, 0);

To_Display := To_Display + CR + CR + 'GetI with Stream=General and Parameter:=17' + CR;
To_Display := To_Display + MediaInfo_GetI(Handle, Stream_General, 0, 17, Info_Text);

To_Display := To_Display + CR + CR + 'Count_Get with StreamKind=Stream_Audio' + CR;
To_Display := To_Display + format('%d', [MediaInfo_Count_Get(Handle, Stream_Audio, -1)]);

To_Display := To_Display + CR + CR + 'Get with Stream:=General and Parameter=^AudioCount^' + CR;
To_Display := To_Display + MediaInfo_Get(Handle, Stream_General, 0, 'AudioCount', Info_Text, Info_Name);

To_Display := To_Display + CR + CR + 'Get with Stream:=Audio and Parameter=^StreamCount^' + CR;
To_Display := To_Display + MediaInfo_Get(Handle, Stream_Audio, 0, 'StreamCount', Info_Text, Info_Name);

To_Display := To_Display + CR + CR + 'Get with Stream:=General and Parameter=^FileSize^' + CR;
To_Display := To_Display + MediaInfo_Get(Handle, Stream_General, 0, 'FileSize', Info_Text, Info_Name);

To_Display := To_Display + CR + CR + 'Close' + CR;
MediaInfo_Close(Handle);

Memo1.Text := To_Display;


end;

end.


карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#22: 2010-07-31 21:28:05 ЛС | профиль | цитата
А че, нормального, текстового описания функций нет
карма: 22

0
Гость
Ответов: 17029
Рейтинг: 0
#23: 2010-07-31 22:05:49 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-10 14:08:15
карма: 0

0
Ответов: 23
Рейтинг: 3
#24: 2010-07-31 22:09:59 ЛС | профиль | цитата
опять не залилось (


#pas
Imports System.Runtime.InteropServices

Public Enum StreamKind As UInteger
General
Visual
Audio
Text
Chapters
Image
Menu
Max
End Enum

Public Enum InfoKind As UInteger
Name
Text
Measure
Options
NameText
MeasureText
Info
HowTo
Max
End Enum

Public Enum InfoOptions As UInteger
ShowInInform
Reserved
ShowInSupported
TypeOfValue
Max
End Enum

Public Class mediainfo
Private Declare Unicode Function MediaInfo_New Lib "MediaInfo.DLL" () As IntPtr
Private Declare Unicode Sub MediaInfo_Delete Lib "MediaInfo.DLL" (ByVal Handle As IntPtr)
Private Declare Unicode Function MediaInfo_Open Lib "MediaInfo.DLL" (ByVal Handle As IntPtr, ByVal FileName As String) As UIntPtr
Private Declare Unicode Sub MediaInfo_Close Lib "MediaInfo.DLL" (ByVal Handle As IntPtr)
Private Declare Unicode Function MediaInfo_Inform Lib "MediaInfo.DLL" (ByVal Handle As IntPtr, ByVal Reserved As UIntPtr) As IntPtr
Private Declare Unicode Function MediaInfo_GetI Lib "MediaInfo.DLL" (ByVal Handle As IntPtr, ByVal StreamKind As UIntPtr, ByVal StreamNumber As UIntPtr, ByVal Parameter As UIntPtr, ByVal KindOfInfo As UIntPtr) As IntPtr 'See MediaInfoDLL.h for enumeration values
Private Declare Unicode Function MediaInfo_Get Lib "MediaInfo.DLL" (ByVal Handle As IntPtr, ByVal StreamKind As UIntPtr, ByVal StreamNumber As UIntPtr, ByVal Parameter As String, ByVal KindOfInfo As UIntPtr, ByVal KindOfSearch As UIntPtr) As IntPtr
Private Declare Unicode Function MediaInfo_Option Lib "MediaInfo.DLL" (ByVal Handle As IntPtr, ByVal Option_ As String, ByVal Value As String) As IntPtr
Private Declare Unicode Function MediaInfo_State_Get Lib "MediaInfo.DLL" (ByVal Handle As IntPtr) As UIntPtr 'see MediaInfo.h for details
Private Declare Unicode Function MediaInfo_Count_Get Lib "MediaInfo.DLL" (ByVal Handle As IntPtr, ByVal StreamKind As UIntPtr, ByVal StreamNumber As IntPtr) As UIntPtr 'see MediaInfoDLL.h for enumeration values

Dim Handle As IntPtr

Sub New()
Handle = MediaInfo_New()
End Sub
Protected Overrides Sub Finalize()
MediaInfo_Delete(Handle)
End Sub
Function Open(ByVal FileName As String) As Integer
Return MediaInfo_Open(Handle, FileName)
End Function
Sub Close()
MediaInfo_Close(Handle)
End Sub
Function Inform() As String
Return Marshal.PtrToStringUni(MediaInfo_Inform(Handle, 0))
End Function
Function Get_(ByVal StreamKind As StreamKind, ByVal StreamNumber As Integer, ByVal Parameter As Integer, Optional ByVal KindOfInfo As InfoKind = InfoKind.Text) As String
Return Marshal.PtrToStringUni(MediaInfo_GetI(Handle, StreamKind, StreamNumber, Parameter, KindOfInfo))
End Function
Function Get_(ByVal StreamKind As StreamKind, ByVal StreamNumber As Integer, ByVal Parameter As String, Optional ByVal KindOfInfo As InfoKind = InfoKind.Text, Optional ByVal KindOfSearch As InfoKind = InfoKind.Name) As String
Return Marshal.PtrToStringUni(MediaInfo_Get(Handle, StreamKind, StreamNumber, Parameter, KindOfInfo, KindOfSearch))
End Function
Function Option_(ByVal Option__ As String, Optional ByVal Value As String = "") As String
Return Marshal.PtrToStringUni(MediaInfo_Option(Handle, Option__, Value))
End Function
Function State_Get() As Integer
Return MediaInfo_State_Get(Handle)
End Function
Function Count_Get(ByVal StreamKind As StreamKind, Optional ByVal StreamNumber As UInteger = UInteger.MaxValue) As Integer
If StreamNumber = UInteger.MaxValue Then
Dim A As Long
A = 0
A = A - 1 'If you know how to have (IntPtr)(-1) easier, I am interested ;-)
Return MediaInfo_Count_Get(Handle, StreamKind, A)
Else
Return MediaInfo_Count_Get(Handle, StreamKind, StreamNumber)
End If
End Function

карма: 0

0
Ответов: 5446
Рейтинг: 323
#25: 2010-08-01 01:06:23 ЛС | профиль | цитата
Bacek, последний код - это уже сплошной .NET, а с ним HiAsm не работает.
карма: 1

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#26: 2010-08-01 01:18:40 ЛС | профиль | цитата
Bacek, это не описание функций. Я спрашивал про описание интерфейса API-функций и структур, как это описано в MSDN у мелкомягких
карма: 22

0
26
Сообщение
...
Прикрепленные файлы
(файлы не залиты)