// @pymethod <o PyIShellItem>|PyIShellLibrary|Save|Saves the library to a specific location // @rdesc Returns a shell item for the saved file. PyObject *PyIShellLibrary::Save(PyObject *self, PyObject *args) { IShellLibrary *pISL = GetI(self); if ( pISL == NULL ) return NULL; IShellItem *FolderToSaveIn, *SavedTo; PyObject *obFolderToSaveIn; TmpWCHAR LibraryName; PyObject *obLibraryName; LIBRARYSAVEFLAGS Flags; // @pyparm <o PyIShellItem>|FolderToSaveIn||The destination folder, use None to save in current user's Libraries folder // @pyparm str|LibraryName||Filename for the new library, without file extension // @pyparm int|Flags||Determines behaviour if file already exists, shellcon.LSF_* if ( !PyArg_ParseTuple(args, "OOi:Save", &obFolderToSaveIn, &obLibraryName, &Flags)) return NULL; if (!PyWinObject_AsWCHAR(obLibraryName, &LibraryName, FALSE)) return NULL; if (!PyCom_InterfaceFromPyObject(obFolderToSaveIn, IID_IShellItem, (void **)&FolderToSaveIn, TRUE)) return NULL; HRESULT hr; PY_INTERFACE_PRECALL; hr = pISL->Save(FolderToSaveIn, LibraryName, Flags, &SavedTo); if (FolderToSaveIn) FolderToSaveIn->Release(); PY_INTERFACE_POSTCALL; if ( FAILED(hr) ) return PyCom_BuildPyException(hr, pISL, IID_IShellLibrary ); return PyCom_PyObjectFromIUnknown(SavedTo, IID_IShellItem, FALSE); }