2015-09-14 10 views
0

Я пытаюсь использовать функцию LSCopyAllHandlersForURLScheme для перечисления через установленные веб-браузеры под Mac OS X, на мой взгляд, я проверял файл Macapi.CoreServices, включенный в Delphi RTL, и я что не все файлы include фактически существуют, они выглядят как комментарии вместо директивы $ I include, я что-то упускаю? Вот кодDelphi Macapi.CoreServices отсутствует LaunchServices

unit Macapi.CoreServices; 

{$WEAKPACKAGEUNIT} 

interface 

{$I OSTypes.inc} 
{$I MacTypes.inc} 
{$I TextCommon.inc} 
{$I Files.inc} 
{$I DispatchSemaphores.inc} 
{$I MacErrors.inc} 
{$IFNDEF IOS} 
{$I Multiprocessing.inc} 
{$I DriverServices.inc} 
{$I Gestalt.inc} 
{$ENDIF !IOS} 
{ $I OSServices.inc} 
{ $I SFNetwork.inc} 
{ $I LaunchServices.inc} 
{ $I SearchKit.inc} 
{ $I Metadata.inc} 
{ $I DictionaryServices.inc} 
{ $I AE.inc} 

const 
    CoreServicesLib = '/System/Library/Frameworks/CoreServices.framework/CoreServices'; 
    {$EXTERNALSYM CoreServicesLib} 
    CarbonCoreLib = '/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/CarbonCore'; 
    {$EXTERNALSYM CarbonCoreLib} 

implementation 

{$IF NOT DECLARED(_PU)} 
const 
    {$IFDEF UNDERSCOREIMPORTNAME} 
    _PU = '_'; 
    {$ELSE} 
    _PU = ''; 
    {$ENDIF} 
{$ENDIF} 

{$I MacTypesImpl.inc} 
{ $I TextCommonImpl.inc} 
{$I FilesImpl.inc} 
{$I DispatchSemaphoresImpl.inc} 
{$IFNDEF IOS} 
{$I MultiprocessingImpl.inc} 
{$I DriverServicesImpl.inc} 
{$I GestaltImpl.inc} 
{$ENDIF !IOS} 
{ $I OSServicesImpl.inc} 
{ $I SFNetworkImpl.inc} 
{ $I LaunchServicesImpl.inc} 
{ $I SearchKitImpl.inc} 
{ $I MetadataImpl.inc} 
{ $I DictionaryServicesImpl.inc} 
{ $I AEImpl.inc} 

end. 

ответ

0

Я импортировал функция сама сейчас, вот как это сделать (очень легко):

const launchServicesLib = '/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/LaunchServices'; 
function LSCopyAllHandlersForURLScheme(inURLScheme: CFStringRef) : CFArrayRef; cdecl; external launchServicesLib name '_LSCopyAllHandlersForURLScheme'; 

Я не знаю, почему Embarcadero не реализовать LaunchServices !

Спасибо,