Форум: "Основная";
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];
ВнизNew заморочка от Русского ;) Найти похожие ветки
← →
Русский (2001-12-21 23:17) [3]Вообще, спасибо, что откликнулись; Вроде всё сделал, а тут трабла такая :()
Tо Иван Шихалев >>
Ета строчка наличествует :)))
To evgeg >> А вот и он:
// Типы для описания полей, класса TNetworkResource.
TResourceDisplayType = (RESOURCEDISPLAYTYPE_GENERIC, RESOURCEDISPLAYTYPE_DOMAIN, RESOURCEDISPLAYTYPE_SERVER, RESOURCEDISPLAYTYPE_SHARE,
RESOURCEDISPLAYTYPE_FILE, RESOURCEDISPLAYTYPE_GROUP, RESOURCEDISPLAYTYPE_NETWORK, RESOURCEDISPLAYTYPE_ROOT,
RESOURCEDISPLAYTYPE_SHAREADMIN, RESOURCEDISPLAYTYPE_DIRECTORY, RESOURCEDISPLAYTYPE_TREE, RESOURCEDISPLAYTYPE_NDSCONTAINER);
TResourceScope = (RESOURCE_CONNECTED, RESOURCE_GLOBALNET, RESOURCE_REMEMBERED);
TResourceType = (RESOURCETYPE_ANY, RESOURCETYPE_DISK, RESOURCETYPE_PRINT);
TResourceUsage = (RESOURCEUSAGE_ALL, RESOURCEUSAGE_CONNECTABLE, RESOURCEUSAGE_CONTAINER);
// Класс для описания сетевого ресурса.
TNetworkResource = class(TPersistent)
private
FScope: TResourceScope;
FType: TResourceType;
FDisplayType: TResourceDisplayType;
FUsage: TResourceUsage;
FLocalName: string;
FRemoteName: string;
FComment: string;
FProvider: string;
public
procedure Assign(Source: TNetResource);
published
property dwScope: TResourceScope read FScope write FScope;
property dwType: TResourceType read FType write FType;
property dwDisplayType: TResourceDisplayType read FDisplayType write FDisplayType;
property dwUsage: TResourceUsage read FUsage write FUsage;
property lpLocalName: string read FLocalName write FLocalName;
property lpRemoteName: string read FRemoteName write FRemoteName;
property lpComment: string read FComment write FComment;
property lpProvider: string read FProvider write FProvider;
end;
TEnumEvent = procedure(Sender: TObject; Resource: TNetworkResource) of object;
...
TEnumNetwork = class(TComponent)
private
{ Private declarations }
Buf: TNetworkResource;
Buffer: array[0..1000] of TNetResource;
...
procedure TEnumNetwork.EnumResource;
// Процедура перечисления доступных сетевых ресурсов.
var
C: DWORD;
dwResult: DWORD;
begin
// Переводим TNetworkResource в TNetResource.
NetworkToNet(FRootResource, FResource);
// Открываем дескриптор перечисления.
if not EnumRootResource then
dwResult := WNetOpenEnum(Cardinal(FResourceScope) + 1, Cardinal(FResourceType), Cardinal(FResourceUsage), nil, hEnum) else
dwResult := WNetOpenEnum(Cardinal(FResourceScope) + 1, Cardinal(FResourceType), Cardinal(FResourceUsage), @FResource, hEnum);
if dwResult = NO_ERROR then
begin
// Устанавливаем размер буфера.
BufSize := SizeOf(Buffer);
Count := $0FFFFFFFF;
// Начинаем перечисление сетевых ресурсов.
if WNetEnumResource(hEnum, Count, @Buffer, BufSize) = NO_ERROR then
for C := 0 to Count - 1 do
begin
Buf.Assign(Buffer[C]);
if Assigned(FOnEnumResource) then FOnEnumResource(Self, Buf);
end
else if Assigned(OnEnumError) then OnEnumError(Self, dwResult);
// Закрываем дескриптор перечисления.
WNetCloseEnum(hEnum);
end
else if Assigned(OnEnumError) then OnEnumError(Self, dwResult);
end;
...
procedure TEnumNetwork.NetworkToNet(Source: TNetworkResource; Destination: TNetResource);
begin
// Процедура переводит тип TNetworkResource в TNetResource.
with Destination do
begin
dwScope := Cardinal(Source.dwScope) + 1;
dwType := Cardinal(Source.dwType);
dwDisplayType := Cardinal(Source.dwDisplayType);
dwUsage := Cardinal(Source.dwUsage);
lpRemoteName := PChar(Source.lpLocalName);
lpLocalName := PChar(Source.lpLocalName);
lpComment := PChar(Source.lpComment);
lpProvider := PChar(Source.lpProvider);
end;
end;
...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.002 c