Même problèmes avec la 5.40 b3.
Setprop et drawtext fonctionnent mais il y a surement des milliers d'API avec ce genre de paramètres, le problème est beaucoup plus profond que quelques API.
Pour l'instant c'est impossible de compiler mon projet, API DrawTextEX() qui est la copine de DrawText(), CreateDC() ne fonctionnent pas et j'en ai vu d'autres en lisant la doc MS.
Je ne sais pas pourquoi c'est devenu si compliqué d'utiliser une API MS avec cette version. Les règles de microsoft sont simples, un pointeur c'est un pointeur et pas une chaine. Les pointeurs de certaines API peuvent être mis à 0 en fonction d'autres paramètres de l'API, voire récupérer une valeur, alors que le compilo attend une chaine.
Fred, tu as surement une bonne raison mais franchement on ne sais pas pourquoi.
Comme je ne connais pas les règles de PB, ça devient pénible alors je reste sur la version précédente pour l'instant car à la compilation j'ai une erreur toute les 30 lignes alors j'arrête de modifier.
Je rajoute que je ne suis encore pas parvenu à compiler mon code propre de PureIconManager, je bloque sur ma librairie des menus.
J'utilise aussi une interface IStorage et IStream alors là je me demande comment ça va se passer ...
J'ai vu hier des choses sur les prototype qui m'inquiètent car j'en utilise quelques uns dont certains passent des paramètres différents.
Code : Tout sélectionner
;// éditeur d'icônes : Les prototypes
Prototype.i PIM_Init(*GetProcessHeap, HeapCompatibilityInformation, *HeapFragValue, SizeOf_HeapFragValue)
Prototype.i Callback_PIM_EnumResourceGroupName_NE_File(hModule1, IconeInfos$, GroupeId1, lParam1, Is_GroupeName = #True)
Prototype.i Callback_PIM_EnumResourceGroupName_PE_File(hModule1, Nom_Groupe1$, GroupeId1, lParam1)
;// prototype d'un objet Istorage pour créer un stream Istream
Prototype.i PIM_StgCreateStorageEx_Obect(valeur_Nulle, Constante_STGM_R_W, Constante_STGM_Storage, valeur_Nulle1, valeur_Nulle2, valeur_Nulle3, IID_IStorage, *storage)
Prototype.i PIM_Save_PIMRessource_To_ICO_Stream_StgCreateStorageEx(valeur_Nulle, Constante_STGM_R_W, Constante_STGM_Storage, valeur_Nulle1, valeur_Nulle2, valeur_Nulle3, IID_IStorage, *storage)
Prototype.i SaveIcon_To_Stream_StgCreateStorageEx(valeur_Nulle, Constante_STGM_R_W, Constante_STGM_Storage, valeur_Nulle1, valeur_Nulle2, valeur_Nulle3, IID_IStorage, *storage)
Prototype.i Save_NE_GROUPES_TO_Stream_StgCreateStorageEx(valeur_Nulle, Constante_STGM_R_W, Constante_STGM_Storage, valeur_Nulle1, valeur_Nulle2, valeur_Nulle3, IID_IStorage, *storage)
Prototype.i PIM_Creation_Ressource_FOR_ICO_SpecificIcons_StgCreateStorageEx(valeur_Nulle, Constante_STGM_R_W, Constante_STGM_Storage, valeur_Nulle1, valeur_Nulle2, valeur_Nulle3, IID_IStorage, *storage)
Prototype.i PIM_EnumResourceNames_ICO_File(*hModule1, *i1, *lParam1)
Prototype.i PIM_EnumResourceNames_NE_File(hModule1, ResType1, Id1, lParam1)
Prototype.i PIM_EnumResourceNames_NE_File_SpecificIcons(hModule1, ResType1, Id1, List Specific_IconId_Add1.IconId())
Prototype.i Enum_GroupID_In_PE_File(hModule1, ResName1, valeur_Nulle)
;Prototype.i PIM_EnumResourceTypes_NE_File(hModule1, ResType1, lParam1)
Prototype.i PIM_Create_Ico_File_After_deleting_operations(valeur_Nulle, Constante_STGM_R_W, Constante_STGM_Storage, valeur_Nulle1, valeur_Nulle2, valeur_Nulle3, IID_IStorage, *storage)
Prototype.i ProtoUpdateResource_ASCII(hUpdate, *lpName, lpName, wLanguage, Titre.p-ascii, cbData)
Prototype.i Delete_Group_Names_From_PE(hUpdate, *lpName, lpName, wLanguage, Titre, cbData)
;// retrouve la langue des icônes format PE
Prototype Get_Icon_Numeric_ID__Language_From_PE_File(*hModule, ResType, Resname, *lpEnumFunc, *info.InfosResource9)
Prototype Get_Icon_String_ID__Language_From_PE_File(*hModule, ResType, Resname$, *lpEnumFunc, *info.InfosResource9)
;// retrouve la langue du groupes 301 (noms de groupe) format PE
Prototype Get_Group_Names__Language_From_PE_File(*hModule, restype, Resname, *lpEnumFunc, *langue)
;// énumération pour icone à supprimer scrollarea format NE
Prototype Enum_SelectedGroup_For_ScrollArea_Supression_In_NE_File_To_Get_GRPICONDIR(*hModule.PIM_LoadFileToMemory_EX, ResType, ResName, List SelectedGroupIconId_Ex.InfosResource5())
;// utilisé pour supprimer les icônes du scrollarea pour les formats PE
Prototype Supprime_Icons_Of_ScrollArea_From_PE(hModule, ResType, *lpEnumFunc, List Selected_IconId.Icons_To_Remove_From_PE())
Prototype Delete_IconGroup_From_PE_File(hModule, ResType, *lpEnumFunc, List SelectedGroupIconId.Groups_To_Remove_From_PE())
Prototype Delete_IconGroup_Numeric_ID__Language_From_PE_File(hModule, ResType, Resname, *lpEnumFunc, List SelectedGroupIconId.Groups_To_Remove_From_PE())
Prototype Delete_IconGroup_String_ID__Language_From_PE_File(hModule, ResType, Resname$, *lpEnumFunc, List SelectedGroupIconId.Groups_To_Remove_From_PE())
Prototype Delete_Icon_Numeric_ID__Language_From_PE_File(hModule, ResType, Resname, *lpEnumFunc, List SelectedIconId.Icons_To_Remove_From_PE())
Prototype Delete_Icon_String_ID__Language_From_PE_File(hModule, ResType, Resname$, *lpEnumFunc, List SelectedIconId.Icons_To_Remove_From_PE())
Prototype Enum_Count_IconsOnlyFrom_SelectedGroup_In_PE_File(hModule, ResType, *lpEnumFunc, List SelectedGroupIconId.i())
Prototype Enum_Add_Icl_UnNamedSelected_Group(hModule, ResType, *lpEnumFunc, List SelectedGroupIconId.i())
Prototype Supprime_Icons_Of_Selected_Groups_From_PE(hModule, ResType, *lpEnumFunc, List SelectedIconId.Icons_To_Remove_From_PE())
Prototype Enum_Count_IconsOnlyFrom_SelectedGroup_In_NE_File(hModule, ResType, *lpEnumFunc, List SelectedGroupIconId.i())
Prototype Enum_SelectedGroup_In_NE_File_To_Get_GRPICONDIR(*hModule, ResType, *lpEnumFunc, List SelectedGroupIconId_Ex.InfosResource5())
Prototype Enum_SelectedGroup_In_PE_File_To_Get_ICONDIRENTRY(*hModule, ResType, ResName, List SelectedGroupIconId_Ex.InfosResource7())
Prototype Enum_SelectedGroup_In_ICO_File_To_Get_ICONDIRENTRY(*hModule, ResName, List SelectedGroupIconId_Ex.InfosResource8())
Prototype TaskDialog(nHWND, hInstance, *cTitle_x, *cDescription_x, *cContent_x, dwCommonButtons.l, nIcon_x, *pnButton)
Prototype TaskDialogIndirect(*tdlgx.TASKDIALOGCONFIG, *ClickedButtonx, *SelRadiox, *fVerifyx)
Prototype.i PIM_Affiche_Icone_Represantant_Le_Groupe_Icones_Format_PE(hModule1, chaine$, ResName1, valeur_Nulle, valeur_Nulle1)
;// les prototypes des thèmes
Prototype.i GetWindowTheme(Hwnd)
Prototype.i SetWindowTheme(Hwnd, *pt1, *pt2)
Prototype.i IsAppThemed()
CompilerIf Not Defined(GdiplusStartup, #PB_Prototype)
Prototype.i GdiplusStartup(*token, *input.GdiplusStartupInput, *output.GdiplusStartupOutput)
CompilerEndIf
Prototype GdipLoadImageFromStream(*Istream, *image)
Prototype GdipGetImageWidth(*image, *Width)
Prototype GdipGetImageHeight(*image, *Height)
Prototype GdipCreateHBITMAPFromBitmap(*image, *imageid, background)
Prototype GdipDisposeImage(*image)
CompilerIf Not Defined(GdiplusShutdown, #PB_Prototype)
Prototype.i GdiplusShutdown(*token)
CompilerEndIf
Prototype GdipCreateBitmapFromScan0(width, height, stride, format, *scan0, *bitmap)
CompilerIf Not Defined(GdipCreateFromHDC, #PB_Prototype)
Prototype.i GdipCreateFromHDC(*hdc, *graphics)
CompilerEndIf
CompilerIf Not Defined(GdipDeleteGraphics, #PB_Prototype)
Prototype GdipDeleteGraphics(*graphics)
CompilerEndIf
Prototype GdipDrawImageRectI(*gfx, *image, x, y, Width, Height)
Prototype GdipGetImageGraphicsContext(*image, *graphics)
Prototype GdipSaveImageToStream(*image, *stream, *clsidEncoder, *encoderParams)
Prototype GdipSaveImageToFile(*image, filename.p-unicode, *clsidEncoder, *encoderParams)