Win32-OLE
view release on metacpan or search on metacpan
}
Safefree(pCharType);
}
void
GetSystemDefaultLangID()
PPCODE:
{
LANGID langID = GetSystemDefaultLangID();
if (langID != 0) {
EXTEND(SP, 1);
XSRETURN_IV(langID);
}
}
void
GetSystemDefaultLCID()
PPCODE:
{
LCID lcid = GetSystemDefaultLCID();
if (lcid != 0) {
EXTEND(SP, 1);
XSRETURN_IV(lcid);
}
}
void
GetUserDefaultLangID()
PPCODE:
{
LANGID langID = GetUserDefaultLangID();
if (langID != 0) {
EXTEND(SP, 1);
XSRETURN_IV(langID);
}
}
void
GetUserDefaultLCID()
PPCODE:
{
LCID lcid = GetUserDefaultLCID();
if (lcid != 0) {
EXTEND(SP, 1);
XSRETURN_IV(lcid);
}
}
void
SendSettingChange()
PPCODE:
{
DWORD_PTR dwResult;
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0,
SMTO_NORMAL, 5000, &dwResult);
XSRETURN_EMPTY;
}
void
SetLocaleInfo(lcid,lctype,lcdata)
IV lcid
IV lctype
char *lcdata
PPCODE:
{
BOOL result = SetLocaleInfoA((LCID)lcid, (LCTYPE)lctype, lcdata);
if (result)
XSRETURN_YES;
XSRETURN_EMPTY;
}
##############################################################################
MODULE = Win32::OLE PACKAGE = Win32::OLE::TypeLib
void
new(self,object)
SV *self
SV *object
PPCODE:
{
HRESULT hr;
HV *stash = Nullhv;
ITypeLib *pTypeLib;
TLIBATTR *pTLibAttr;
if (sv_isobject(object) && sv_derived_from(object, szWINOLE)) {
WINOLEOBJECT *pOleObj = GetOleObject(aTHX_ object);
if (!pOleObj)
XSRETURN_EMPTY;
unsigned int count;
hr = pOleObj->pDispatch->GetTypeInfoCount(&count);
stash = SvSTASH(pOleObj->self);
if (CheckOleError(aTHX_ stash, hr) || count == 0)
XSRETURN_EMPTY;
ITypeInfo *pTypeInfo;
hr = pOleObj->pDispatch->GetTypeInfo(0, lcidDefault, &pTypeInfo);
if (CheckOleError(aTHX_ stash, hr))
XSRETURN_EMPTY;
unsigned int index;
hr = pTypeInfo->GetContainingTypeLib(&pTypeLib, &index);
pTypeInfo->Release();
if (CheckOleError(aTHX_ stash, hr))
XSRETURN_EMPTY;
}
else {
stash = GetWin32OleStash(aTHX_ self);
UINT cp = (UINT)QueryPkgVar(aTHX_ stash, CP_NAME, CP_LEN, cpDefault);
OLECHAR Buffer[OLE_BUF_SIZ];
OLECHAR *pBuffer = GetWideChar(aTHX_ object, Buffer, OLE_BUF_SIZ, cp);
hr = LoadTypeLibEx(pBuffer, REGKIND_NONE, &pTypeLib);
ReleaseBuffer(aTHX_ pBuffer, Buffer);
if (CheckOleError(aTHX_ stash, hr))
XSRETURN_EMPTY;
}
hr = pTypeLib->GetLibAttr(&pTLibAttr);
if (FAILED(hr)) {
pTypeLib->Release();
ReportOleError(aTHX_ stash, hr);
( run in 0.653 second using v1.01-cache-2.11-cpan-bbb979687b5 )